aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2016-10-10re PR tree-optimization/71947 (x ^ y not folded to 0 if x == y by DOM)Jeff Law9-1/+140
PR tree-optimization/71947 * tree-ssa-dom.c (cprop_into_stmt): Avoid replacing A with B, then B with A within a single statement. PR tree-optimization/71947 * gcc.dg/tree-ssa/pr71947-1.c: New test. * gcc.dg/tree-ssa/pr71947-2.c: New test. * gcc.dg/tree-ssa/pr71947-3.c: New test. * gcc.dg/tree-ssa/pr71947-4.c: New test. * gcc.dg/tree-ssa/pr71947-5.c: New test. * gcc.dg/tree-ssa/pr71947-6.c: New test. From-SVN: r240947
2016-10-10re PR tree-optimization/77824 (unreachable code in SLSR GIMPLE pass)Bill Schmidt2-4/+17
2016-10-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/77824 * gimple-ssa-strength-reduction.c (stmt_cost): Explicitly return zero cost for copies. (find_candidates_dom_walker::before_dom_children): Replace MODIFY_EXPR with SSA_NAME. (replace_mult_candidate): Likewise. (replace_profitable_candidates): Likewise. From-SVN: r240945
2016-10-10compiler: prune away gcc-specific linemap usageThan McIntosh5-2/+28
Add an interface to the go Linemap class to allow clients to ask for the line number for a Location (for debugging dumps), so as to move some gcc-specific location code into the back end. Reviewed-on: https://go-review.googlesource.com/30699 * go-linemap.cc (Gcc_linemap::location_line): New method. From-SVN: r240942
2016-10-10runtime: copy channel code from Go 1.7 runtimeIan Lance Taylor7-57/+118
Change the compiler to use the new routines. Drop the separation of small and large values when sending on a channel. Allocate the select struct on the stack. Remove the old C implementation of channels. Adjust the garbage collector for the new data structure. Bring in part of the tracing code, enough for the channel code to call. Bump the permitted number of allocations in one of the tests in context_test.go. The difference is that now receiving from a channel allocates a sudog, which the C code used to simply put on the stack. This will be somewhat better when we port proc.go. Reviewed-on: https://go-review.googlesource.com/30714 From-SVN: r240941
2016-10-10S/390: Wrap more macro args into ()Andreas Krebbel2-43/+49
Turned out that there where a few () around macro args uses missing. One real problem with it was detected with the int-in-bool-context in the definition of DBX_REGISTER_NUMBER. But while being at it I've also tried to fix other places where brackets might be missing. gcc/ChangeLog: 2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com> * config/s390/s390.h: Wrap more macros args in brackets and fix some formatting. From-SVN: r240930
2016-10-10re PR fortran/77915 (Internal error for matmul() in forall with optimization)Thomas Koenig4-0/+30
2016-10-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/77915 * frontend-passes.c (inline_matmul_assign): Return early if inside a FORALL statement. 2016-10-10 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/77915 * gfortran.dg/matmul_11.f90: New test. From-SVN: r240928
2016-10-10gen-avr-mmcu-texi.c (string.h): Include.Georg-Johann Lay2-0/+5
* config/avr/gen-avr-mmcu-texi.c (string.h): Include. From-SVN: r240925
2016-10-10[4/4] ARMv8.2-A testsuite for new scalar intrinsicsJiong Wang60-0/+1916
gcc/testsuite/ * gcc.target/aarch64/advsimd-intrinsics/unary_scalar_op.inc: Support FMT64. * gcc.target/aarch64/advsimd-intrinsics/vabdh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcageh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcagth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcaleh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcalth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vceqh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vceqzh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgeh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgezh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcgtzh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcleh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vclezh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vclth_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcltzh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtah_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_s64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_f16_u64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_s64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_f16_u64_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_n_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvth_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtmh_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtnh_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_s16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_s64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_u16_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vcvtph_u64_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmash_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmaxh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vminh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulh_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulxh_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrecpeh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrecpsh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrecpxh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrsqrteh_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrsqrtsh_f16_1.c: New. From-SVN: r240924
2016-10-10[3/4] ARMv8.2-A testsuite for new vector intrinsicsJiong Wang15-0/+3428
gcc/testsuite/ * gcc.target/aarch64/advsimd-intrinsics/vdiv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmas_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vfmas_n_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmaxnmv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmaxv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vminnmv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vminv_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmul_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vmulx_n_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vpminmaxnm_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vrndi_f16_1.c: New. * gcc.target/aarch64/advsimd-intrinsics/vsqrt_f16_1.c: New. From-SVN: r240923
2016-10-10[2/4] ARMv8.2-A testsuite for new data movement intrinsicsJiong Wang7-15/+1053
gcc/testsuite/ * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (FP16_SUPPORTED): Enable AArch64. * gcc.target/aarch64/advsimd-intrinsics/vdup_lane.c: Add support for vdup*_laneq. * gcc.target/aarch64/advsimd-intrinsics/vduph_lane.c: New. * gcc.target/aarch64/advsimd-intrinsics/vtrn_half.c: New. * gcc.target/aarch64/advsimd-intrinsics/vuzp_half.c: New. * gcc.target/aarch64/advsimd-intrinsics/vzip_half.c: New. From-SVN: r240922
2016-10-10[1/4] ARMv8.2-A FP16 testsuite selectorJiong Wang2-13/+53
gcc/testsuite/ * target-supports.exp (add_options_for_arm_v8_2a_fp16_scalar): Mention AArch64 support. (add_options_for_arm_v8_2a_fp16_neon): Likewise. (check_effective_target_arm_v8_2a_fp16_scalar_ok_nocache): Support AArch64 targets. (check_effective_target_arm_v8_2a_fp16_neon_ok_nocache): Support AArch64 targets. (check_effective_target_arm_v8_2a_fp16_scalar_hw): Support AArch64 targets. (check_effective_target_arm_v8_2a_fp16_neon_hw): Likewise. From-SVN: r240921
2016-10-10re PR target/77738 (Invalid initialisation of ar.lc register)Andreas Schwab2-6/+15
PR target/77738 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop pseudo is not DImode. From-SVN: r240918
2016-10-10[ARC] Disable compact casesi patterns for arcv2Claudiu Zissulescu4-3/+21
gcc/ 2016-05-09 Claudiu Zissulescu <claziss@synopsys.com> * common/config/arc/arc-common.c (arc_option_optimization_table): Remove compact casesi option. * config/arc/arc.c (arc_override_options): Use compact casesi option only for pre-ARCv2 cores. * doc/invoke.texi (mcompact-casesi): Update text. From-SVN: r240916
2016-10-10decl.c (gnat_to_gnu_entity): Put volatile qualifier on types at the very end ↵Eric Botcazou4-14/+40
of the processing. * gcc-interface/decl.c (gnat_to_gnu_entity): Put volatile qualifier on types at the very end of the processing. (gnat_to_gnu_param): Remove redundant test. (change_qualified_type): Do nothing for unconstrained array types. From-SVN: r240915
2016-10-10utils2.c (find_common_type): Do not return the LHS type if it's an array ↵Eric Botcazou7-12/+82
with non-constant lower bound and... * gcc-interface/utils2.c (find_common_type): Do not return the LHS type if it's an array with non-constant lower bound and the RHS type is an array with a constant one. From-SVN: r240913
2016-10-10utils.c (convert): For a biased input type, convert the bias itself to the ↵Eric Botcazou4-4/+41
base type before adding it. * gcc-interface/utils.c (convert): For a biased input type, convert the bias itself to the base type before adding it. From-SVN: r240910
2016-10-10* config-lang.in (lang_requires_boot_languages): Delete.Eric Botcazou2-4/+4
From-SVN: r240909
2016-10-09rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): Add macro to say we can ↵Aaron Sawdey3-4/+33
efficiently handle overlapping unaligned loads. 2016-10-09 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): Add macro to say we can efficiently handle overlapping unaligned loads. * config/rs6000/rs6000.c (expand_block_compare): Avoid generating poor code for processors older than p8. From-SVN: r240908
2016-10-10Daily bump.GCC Administrator1-1/+1
From-SVN: r240907
2016-10-09* gen-pass-instances.awk: Remove GNUism.Eric Botcazou2-8/+11
From-SVN: r240904
2016-10-09ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to NULL of ↵Prathamesh Kulkarni2-0/+8
(*ipcp_transformations)][node->uid]. 2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * ipa-prop.c (ipcp_transform_function): Set fields m_vr and bits to NULL of (*ipcp_transformations)][node->uid]. From-SVN: r240903
2016-10-09pa.h (BIGGEST_ALIGNMENT): Adjust comment.John David Anglin2-1/+18
* config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment. (MALLOC_ABI_ALIGNMENT): Define. From-SVN: r240901
2016-10-09tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or ↵Jakub Jelinek73-392/+460
VAR_OR_FUNCTION_DECL_P macros. * tree-ssa.c (target_for_debug_bind, verify_phi_args, ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. * tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds, chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref, chkp_find_bounds_1): Likewise. * ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise. * hsa-gen.c (get_symbol_for_decl): Likewise. * cgraphunit.c (check_global_declaration, analyze_functions, handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk): Likewise. * gimple-fold.c (can_refer_decl_in_current_unit_p, canonicalize_constructor_val, gimple_get_virt_method_for_vtable): Likewise. * tree.c (set_decl_section_name, copy_node_stat, need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r, merge_dllimport_decl_attributes, handle_dll_attribute, decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p, verify_type): Likewise. * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior, find_explicit_erroneous_behavior): Likewise. * sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise. * ipa.c (process_references): Likewise. * tree-chkp-opt.c (chkp_get_check_result): Likewise. * varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl, notice_global_symbol, assemble_variable, mark_decl_referenced, build_constant_desc, output_constant_def_contents, do_assemble_alias, make_decl_one_only, default_section_type_flags, categorize_decl_for_section, default_encode_section_info): Likewise. * trans-mem.c (requires_barrier): Likewise. * gimple-expr.c (mark_addressable): Likewise. * cfgexpand.c (add_scope_conflicts_1, expand_one_var, expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p, expand_debug_expr): Likewise. * tree-dump.c (dequeue_and_dump): Likewise. * ubsan.c (instrument_bool_enum_load): Likewise. * tree-pretty-print.c (print_declaration): Likewise. * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise. * tree-ssa-uninit.c (warn_uninitialized_vars): Likewise. * asan.c (asan_protect_global, instrument_derefs): Likewise. * tree-into-ssa.c (rewrite_stmt, maybe_register_def, pass_build_ssa::execute): Likewise. * var-tracking.c (var_debug_decl, track_expr_p): Likewise. * tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost): Likewise. * ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use): Likewise. * tree-inline.c (insert_debug_decl_map, remap_ssa_name, can_be_nonlocal, remap_decls, copy_debug_stmt, initialize_inlined_parameters, add_local_variables, reset_debug_binding, replace_locals_op): Likewise. * dse.c (can_escape): Likewise. * ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p): Likewise. * tree-diagnostic.c (default_tree_printer): Likewise. * tree-streamer-in.c (unpack_ts_decl_common_value_fields, unpack_ts_decl_with_vis_value_fields, lto_input_ts_decl_common_tree_pointers): Likewise. * builtins.c (builtin_save_expr, fold_builtin_expect, readonly_data_expr): Likewise. * tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var, create_variable_info_for, set_uids_in_ptset, visit_loadstore): Likewise. * gimple-streamer-out.c (output_gimple_stmt): Likewise. * gimplify.c (force_constant_size, gimplify_bind_expr, gimplify_decl_expr, gimplify_var_or_parm_decl, gimplify_compound_lval, gimplify_init_constructor, gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare, gimplify_type_sizes): Likewise. * cgraphbuild.c (record_reference, record_type_list, mark_address, mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise. * tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p, remove_unused_locals): Likewise. * tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal, ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise. * function.c (instantiate_expr, instantiate_decls_1, setjmp_vars_warning, add_local_decl): Likewise. * alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs): Likewise. * tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op, va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes, optimize_va_list_gpr_fpr_size): Likewise. * tree-nrv.c (pass_nrv::execute): Likewise. * tsan.c (instrument_expr): Likewise. * tree-ssa-dce.c (remove_dead_stmt): Likewise. * vtable-verify.c (verify_bb_vtables): Likewise. * tree-dfa.c (ssa_default_def, set_ssa_default_def, get_ref_base_and_extent): Likewise. * toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2): Likewise. * tree-sra.c (static bool constant_decl_p, find_var_candidates, analyze_all_variable_accesses): Likewise. * tree-nested.c (get_nonlocal_debug_decl, convert_nonlocal_omp_clauses, note_nonlocal_vla_type, note_nonlocal_block_vlas, convert_nonlocal_reference_stmt, get_local_debug_decl, convert_local_omp_clauses, convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls): Likewise. * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise. * stmt.c (decl_overlaps_hard_reg_set_p): Likewise. * dbxout.c (dbxout_late_global_decl, dbxout_type_fields, dbxout_symbol, dbxout_common_check): Likewise. * expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1, string_constant): Likewise. * hsa.c (hsa_get_declaration_name): Likewise. * passes.c (rest_of_decl_compilation): Likewise. * tree-ssanames.c (make_ssa_name_fn): Likewise. * tree-streamer-out.c (pack_ts_decl_common_value_fields, pack_ts_decl_with_vis_value_fields, write_ts_decl_common_tree_pointers): Likewise. * stor-layout.c (place_field): Likewise. * symtab.c (symtab_node::maybe_create_reference, symtab_node::verify_base, symtab_node::make_decl_local, symtab_node::copy_visibility_from, symtab_node::can_increase_alignment_p): Likewise. * dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor, decl_by_reference_p, reference_to_unused, rtl_for_decl_location, fortran_common, add_location_or_const_value_attribute, add_scalar_info, add_linkage_name, set_block_abstract_flags, local_function_static, gen_variable_die, dwarf2out_late_global_decl, optimize_one_addr_into_implicit_ptr, optimize_location_into_implicit_ptr): Likewise. * gimple-low.c (record_vars_into): Likewise. * ipa-visibility.c (update_vtable_references): Likewise. * tree-ssa-address.c (fixed_address_object_p, copy_ref_info): Likewise. * lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value, DFS::DFS_write_tree_body, write_symbol): Likewise. * langhooks.c (lhd_warn_unused_global_decl, lhd_set_decl_assembler_name): Likewise. * attribs.c (decl_attributes): Likewise. * except.c (output_ttype): Likewise. * varpool.c (varpool_node::get_create, ctor_for_folding, varpool_node::assemble_decl, varpool_node::create_alias): Likewise. * fold-const.c (fold_unary_loc): Likewise. * ipa-prop.c (ipa_compute_jump_functions_for_edge, ipa_find_agg_cst_from_init): Likewise. * omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg, expand_omp_target, lower_omp_regimplify_p, grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls, find_link_var_op): Likewise. * tree-chrec.c (chrec_contains_symbols): Likewise. * tree-cfg.c (verify_address, verify_expr, verify_expr_location_1, gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates, execute_fixup_cfg): Likewise. From-SVN: r240900
2016-10-09re PR tree-optimization/77901 (ICE in tree-sse-reassoc,c:2881)Jakub Jelinek4-1/+28
PR tree-optimization/77901 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Only optimize if ranges[i].exp is SSA_NAME when looking for >= and only when ranges[i].exp is NULL or SSA_NAME when looking for the other comparison. * gcc.c-torture/compile/pr77901.c: New test. From-SVN: r240899
2016-10-09ipa-cp.c (ipcp_alignment_lattice): Remove.Prathamesh Kulkarni12-488/+131
2016-10-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * ipa-cp.c (ipcp_alignment_lattice): Remove. (ipcp_param_lattices): Remove field alignment. (print_all_lattices): Remove call to ipcp_alignment_lattice::print. (set_all_contains_variable): Remove call to ipcp_alignment_lattice::set_to_bottom. (initialize_node_lattices): Likewise. (propagate_alignment_accross_jump_function): Remove. (propagate_constants_accross_call): Remove call to propagate_alignment_accross_jump_function. (ipcp_store_alignment_results): Remove. (ipcp_driver): Remove call to ipcp_store_alignment_results. (propagate_bits_accross_jump_function): Handle ancestor jump function. * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Remove pretty-printing of alignment jump function. (ipa_set_jf_unknown): Remove assignment to jfunc->alignment.known. (ipa_compute_jump_functions_for_edge): Adjust ipa_bits jump function for alignments and remove computing ipa_alignment jump function. (ipa_node_params_t::duplicate): Remove copying of src_trans->alignments. (ipa_write_jump_functions): Remove streaming for ipa_alignment. (ipa_read_jump_function): Remove reading of ipa_alignment. (write_ipcp_transformation_info): Remove streaming for alignment propagation summary. (read_ipcp_transformation_info): Remove reading of alignment propagation summary. (ipcp_update_alignments): Remove. (ipcp_update_bits): Adjust to set alignment for parameters of pointer type. (ipcp_transform_function): Remove call to ipcp_update_alignments() and remove assignment to (*ipcp_transformations)[node->uid].alignments. * ipa-prop.h (ipa_alignment): Remove. (ipa_jump_func): Remove field alignment. (ipcp_transformation_summary): Remove field alignments. * doc/invoke.texi: Mark fipa-cp-alignment as obsolete. * opts.c (default_options_table): Remove entry for fipa-cp-alignment. (enable_fdo_optimizations): Remove checking for fipa-cp-alignment. testsuite/ * gcc.dg/ipa/propalign-1.c: Adjust scan-ipa-dump. * gcc.dg/ipa/propalign-2.c: Likewise * gcc.dg/ipa/propalign-3.c: Likewise. * gcc.dg/ipa/propalign-4.c: Likewise. * gcc.dg/ipa/propalign-5.c: Likewise. From-SVN: r240898
2016-10-08* cp-gimplify.c (cp_fold): Add variable name.Jason Merrill2-1/+3
From-SVN: r240897
2016-10-09Daily bump.GCC Administrator1-1/+1
From-SVN: r240896
2016-10-08Delay folding of bool conversion into COND_EXPR.Jason Merrill4-15/+21
gcc/c-family/ * c-common.c (c_common_truthvalue_conversion): Don't distribute into COND_EXPR in C++. gcc/cp/ * cp-gimplify.c (cp_fold): Distribute cp_truthvalue_conversion into COND_EXPR. From-SVN: r240893
2016-10-08sparc.h (FIXED_REGISTERS): Add %icc.Eric Botcazou3-10/+14
* config/sparc/sparc.h (FIXED_REGISTERS): Add %icc. * config/visium/visium.c (visium_expand_int_cstore): Revert latest change. (visium_expand_fp_cstore): Likewise. From-SVN: r240892
2016-10-08diagnostic-core.h (warning_at_rich_loc_n): Declare.Prathamesh Kulkarni3-7/+48
2016-10-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> * diagnostic-core.h (warning_at_rich_loc_n): Declare. * diagnostic.c (warning_at_rich_loc_n): New function. (diagnostic_n_impl_richloc): Likewise. (diagnostic_n_impl): Move most of the function to diagnostic_n_impl_richloc and call it. From-SVN: r240891
2016-10-08utils.c (convert): Add missing break.Eric Botcazou6-34/+46
* gcc-interface/utils.c (convert) <VECTOR_CST>: Add missing break. Revert 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> * gcc-interface/decl.c: Fix fall through comment formatting. * gcc-interface/misc.c: Likewise. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. * gcc-interface/utils2.c: Likewise. From-SVN: r240890
2016-10-08Further P0135 refinement.Jason Merrill9-59/+110
* call.c (build_user_type_conversion_1): Consider conversions from a single element in an initializer-list. (build_temp): Undo early_elide_copy change. (build_over_call): Check that we don't try to copy a TARGET_EXPR in C++17 mode. Set user_conv_p here. (convert_like_real): Not here. (check_self_delegation): Split out from... (build_special_member_call): ...here. Handle C++17 copy elision. * cvt.c (early_elide_copy): Remove. (ocp_convert): Undo early_elide_copy change. * except.c (build_throw): Likewise. * init.c (expand_default_init): Likewise. * typeck.c (cp_build_modify_expr): Likewise. From-SVN: r240889
2016-10-08gen-pass-instances.awk: Rewritten.Jakub Jelinek1-0/+31
* gen-pass-instances.awk: Rewritten. * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass $(PASSES_EXTRA) after passes.def to the script. * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def. * config/i386/i386-passes.def: New file. * config/i386/i386-protos.h (make_pass_insert_vzeroupper, make_pass_stv): Declare. * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to false. (pass_stv::gate): Depending on timode_p member require TARGET_64BIT or !TARGET_64BIT. (pass_stv::clone, pass_stv::set_pass_param): New methods. (pass_stv::timode_p): New non-static data member. (ix86_option_override): Don't register passes here. From-SVN: r240888
2016-10-08gen-pass-instances.awk: Rewritten.Jakub Jelinek6-81/+219
* gen-pass-instances.awk: Rewritten. * Makefile.in (pass-instances.def): Depend on $(PASSES_EXTRA), pass $(PASSES_EXTRA) after passes.def to the script. * config/i386/t-i386 (PASSES_EXTRA): Add i386-passes.def. * config/i386/i386-passes.def: New file. * config/i386/i386-protos.h (make_pass_insert_vzeroupper, make_pass_stv): Declare. * config/i386/i386.c (pass_stv::pass_stv): Initialize timode_p to false. (pass_stv::gate): Depending on timode_p member require TARGET_64BIT or !TARGET_64BIT. (pass_stv::clone, pass_stv::set_pass_param): New methods. (pass_stv::timode_p): New non-static data member. (ix86_option_override): Don't register passes here. From-SVN: r240887
2016-10-08invoke.texi: Document accepting Else, fallthrough.Jakub Jelinek4-3/+19
* doc/invoke.texi: Document accepting Else, fallthrough. * lex.c (fallthrough_comment_p): Accept Else, fallthrough. * c-c++-common/Wimplicit-fallthrough-23.c (foo): Add further tests. From-SVN: r240886
2016-10-08invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment style changes.Jakub Jelinek4-5/+120
* doc/invoke.texi (-Wimplicit-fallthrough): Document FALLTHRU comment style changes. * lex.c (fallthrough_comment_p): Extend to handle more common FALLTHRU comment styles. * c-c++-common/Wimplicit-fallthrough-23.c (foo): Add further tests. From-SVN: r240885
2016-10-08c-lex.c (c_lex_with_flags): For CPP_COMMENT token with PREV_FALLTHROUGH...Jakub Jelinek7-7/+178
* c-lex.c (c_lex_with_flags) <case CPP_COMMENT>: For CPP_COMMENT token with PREV_FALLTHROUGH, skip all following CPP_PADDING and CPP_COMMENT tokens and set add_flags to PREV_FALLTHROUGH afterwards. * doc/invoke.texi (-Wimplicit-fallthrough): Document the accepted FALLTHRU comment styles. * lex.c (fallthrough_comment_p): Fix off-by-one size comparison errors, cleanup. (_cpp_lex_direct): Allow arbitrary comments in between fallthrough_comment_p comment and following token. * c-c++-common/Wimplicit-fallthrough-23.c: New test. * c-c++-common/Wimplicit-fallthrough-24.c: New test. From-SVN: r240884
2016-10-08Daily bump.GCC Administrator1-1/+1
From-SVN: r240882
2016-10-07aarch64-arches.def (AARCH64_ARCH): #undef at the end.Andrew Pinski12-17/+31
2016-10-07 Andrew Pinski <apinski@cavium.com> * config/aarch64/aarch64-arches.def (AARCH64_ARCH): #undef at the end. * config/aarch64/aarch64-cores.def (AARCH64_CORE): Likewise. * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR): Likewise. * config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION): Likewise. * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): Likewise. * config/aarch64/aarch64-opts.h (AARCH64_CORE): Don't #undef here. (AARCH64_ARCH): Likewise. * common/config/aarch64/aarch64-common.c (AARCH64_OPT_EXTENSION): Likewise. (AARCH64_CORE): Likewise. (AARCH64_ARCH): Likewise. * config/aarch64/aarch64-protos.h (AARCH64_FUSION_PAIR): Likewise. (AARCH64_EXTRA_TUNING_OPTION): Likewise. * config/aarch64/aarch64.c (AARCH64_FUION_PAIR): Likewise. (AARCH64_EXTRA_TUNING_OPTION): Likewise. (AARCH64_ARCH): Likewise. (AARCH64_CORE): Likewise. * config/aarch64/aarch64.h (AARCH64_CORE): Likewise. * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Likewise. (AARCH64_CORE): Likewise. (AARCH64_ARCH): Likewise. From-SVN: r240876
2016-10-07Fix ICE due to map typespecs with different sized charlens being copied.Fritz Reese4-0/+82
2016-10-07 Fritz Reese <fritzoreese@gmail.com> Fix ICE due to map typespecs with different sized charlens being copied. gcc/fortran/ * interface.c (compare_components): Check charlen for BT_CHAR. gcc/testsuite/gfortran.dg/ * dec_union_11.f90: New testcase. From-SVN: r240875
2016-10-07re PR c++/64433 (Segmentation fault while compiling)Nathan Sidwell9-12/+193
cp/ PR c++/64433 DR1658, DR1611 * init.c (emit_mem_initializers): Don't construct vbases of abstract classes. (push_base_cleanups): Don't push vbase cleanups for abstract class when in C++14 mode. * method.c (synthethesized_method_walk): Don't walk vbases of abstract classes when in C++14 mode. testsuite/ PR c++/66443 * g++.dg/cpp0x/pr66443-cxx11.C: New. * g++.dg/cpp0x/pr66443-cxx11-2.C: New. * g++.dg/cpp1y/pr66443-cxx14.C: New * g++.dg/cpp1y/pr66443-cxx14-2.C: New. * g++.dg/cpp1y/pr66443-cxx14-3.C: New. From-SVN: r240874
2016-10-07Implement LWG2296 helper intrinsic c-family/Jakub Jelinek17-13/+244
Implement LWG2296 helper intrinsic c-family/ * c-common.h (enum rid): Add RID_ADDRESSOF. * c-common.c (c_common_reswords): Add __builtin_addressof. cp/ * parser.c (cp_parser_postfix_expression): Handle RID_ADDRESSOF. * cp-objcp-common.c (cp_common_init_ts): Handle ADDRESSOF_EXPR. * constexpr.c (potential_constant_expression_1): Likewise. * error.c (dump_expr): Likewise. * typeck.c (cp_build_addressof): New function. * cp-tree.h (cp_build_addressof): Declare. * cxx-pretty-print.h (pp_cxx_addressof_expression): Declare. * cp-tree.def (ADDRESSOF_EXPR): New tree code. * cxx-pretty-print.c (cxx_pretty_printer::primary_expression): Handle ADDRESSOF_EXPR. Add __builtin_addressof and __has_unique_object_representations into syntax in function comment. (pp_cxx_addressof_expression): New function. * pt.c (tsubst_copy_and_build): Handle ADDRESSOF_EXPR. testsuite/ * g++.dg/cpp0x/addressof1.C: New test. * g++.dg/cpp0x/addressof2.C: New test. From-SVN: r240873
2016-10-07rs6000-c.c (rs6000_cpu_cpp_builtins): Split -mfloat128 into -mfloat128-type ↵Michael Meissner12-94/+355
that enables the IEEE 128-bit floating... [gcc] 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com> * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Split -mfloat128 into -mfloat128-type that enables the IEEE 128-bit floating point type infrastructre, and -mfloat128 that enables the keyword. Define __FLOAT128__ if -mfloat128, and __FLOAT128_TYPE__ if -mfloat128-type. Define __ibm128 to be long double by default. * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print whether the IEEE 128-bit floating point type infrastructure should automatically be enabled. (rs6000_init_hard_regno_mode_ok): Switch to use -mfloat128-type instead of -mfloat128 to enable KFmode. (rs6000_option_override_internal): Split the option -mfloat128 into -mfloat128-type and -mfloat128. On Linux PowerPC 64-bit systems, automatically set -mfloat128-type, but don't enable it on other operating systems. Move setting the long double size and IEEE quad support before the IEEE 128-bit floating point changes. (rs6000_init_builtins): Do not create a unique type for __ibm128 if long double is IBM extended double, instead rely on __ibm128 being defined as 'long double'. If -mfloat128-type and not -mfloat128, create the KFmode type with an undocumented __ieee128 keyword. (rs6000_init_libfuncs): Use -mfloat128-type instead of -mfloat128 for tests about the types, but keep tests for -mfloat128 to enable the keyword support. (rs6000_complex_function_value): Likewise. (rs6000_scalar_mode_supported_p): Likewise. (rs6000_floatn_mode): Likewise. (rs6000_c_mode_for_suffix): Likewise. (rs6000_opt_masks): Add -mfloat128-type. * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add support for -mfloat128-type being split from -mfloat128. Add -mfloat128-hardware, which was missing. * config/rs6000/rs6000.opt (-mfloat128): Split -mfloat128 into -mfloat128 and -mfloat128-type: (-mfloat128-type): Likewise. * config/rs6000/linux64.h (TARGET_FLOAT128_ENABLE_TYPE): Define so that 64-bit Linux systems with enable -mfloat128-type by default on VSX systems. * config/rs6000/rs6000.h (TARGET_FLOAT128_ENABLE_TYPE): Likewise. (FLOAT128_VECTOR_P): Switch IEEE 128-bit floating points to use -mfloat128-type instead of -mfloat128. (FLOAT128_2REG_P): Likewise. (MASK_FLOAT128_TYPE): Likewise. (ALTIVEC_ARG_MAX_RETURN): Likewise. (RS6000_BTM_FLOAT128): Likewise. (TARGET_FLOAT128): Poison old identifiers. (OPTION_MASK_FLOAT128): Likewise. (MASK_FLOAT128): Likewise. * config/rs6000/rs6000.md (FP): Likewise. (FLOAT128): Likewise. (fix_trunc<mode>di2): Likewise. (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise. (floatdi<mode>2): Likewise. (floatuns<SDI:mode><IEEE128:mode>2): Likewise. (neg<mode>2, FLOAT128 iterator): Likewise. (abs<mode>2, FLOAT128 iterator): Likewise. (ieee_128bit_negative_zero): Likewise. (ieee_128bit_vsx_neg<mode>2): Likewise. (ieee_128bit_vsx_neg<mode>2_internal): Likewise. (ieee_128bit_vsx_abs<mode>2): Likewise. (ieee_128bit_vsx_abs<mode>2_internal): Likewise. (ieee_128bit_vsx_nabs<mode>2): Likewise. (ieee_128bit_vsx_nabs<mode>2_internal): Likewise. (extendiftf2): Likewise. (extendifkf2): Likewise. (extendtfkf2): Likewise. (trunciftf2): Likewise. (truncifkf2): Likewise. (trunckftf2): Likewise. (trunctfif2): Likewise. (extendkftf2): Likewise. (trunctfkf2): Likewise. [gcc/testsuite] 2016-10-06 Michael Meissner <meissner@linux.vnet.ibm.com> * gcc.target/powerpc/float128-type-1.c: New test to check that PowerPC 64-bit Linux enables -mfloat128-type by default. * gcc.target/powerpc/float128-type-2.c: Likewise. * gcc.target/powerpc/float128-mix.c: Change error message to reflect that __ibm128 is now #define'ed to be long double. From-SVN: r240872
2016-10-07re PR fortran/77406 (ICE in generic_correspondence, at fortran/interface.c:1123)Steven G. Kargl18-50/+122
2016-10-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77406 * interface.c (gfc_compare_interfaces): Fix detection of ambiguous interface involving alternate return. (check_interface1): Improve error message and loci. 2016-10-07 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/77406 * gfortran.dg/pr77406.f90: New test. * gfortran.dg/assumed_type_3.f90: Update error messages. * gfortran.dg/defined_operators_1.f90: Ditto. * gfortran.dg/generic_26.f90: Ditto. * gfortran.dg/generic_7.f90: Ditto. * gfortran.dg/gomp/udr5.f90: Ditto. * gfortran.dg/gomp/udr7.f90: Ditto. * gfortran.dg/interface_1.f90: Ditto. * gfortran.dg/interface_37.f90: Ditto. * gfortran.dg/interface_5.f90: Ditto. * gfortran.dg/interface_6.f90: Ditto. * gfortran.dg/interface_7.f90 * gfortran.dg/no_arg_check_3.f90 * gfortran.dg/operator_5.f90 * gfortran.dg/proc_ptr_comp_20.f90: Ditto. From-SVN: r240870
2016-10-07re PR c++/77700 (suspicios code in cp/parser.c)Bernd Edlinger6-1/+30
2016-10-07 Bernd Edlinger <bernd.edlinger@hotmail.de> PR c++/77700 * c-common.c (c_common_truthvalue_conversion): Warn also for suspicious enum values in boolean context. cp: 2016-10-07 Bernd Edlinger <bernd.edlinger@hotmail.de> PR c++/77700 * parser.c (cp_parser_base_specifier): Fix a warning. testsuite: 2016-10-07 Bernd Edlinger <bernd.edlinger@hotmail.de> PR c++/77700 * c-c++-common/Wint-in-bool-context.c: Update test. From-SVN: r240867
2016-10-07[simplify-rtx] Zero-initialise local array in simplify_immed_subregKyrylo Tkachov2-3/+6
* simplify-rtx.c (simplify_immed_subreg): Zero-initialize tmp array before merging in bytes to pass down to real_from_target. From-SVN: r240866
2016-10-07tree-ssa-propagate.c (replace_phi_args_in): Remove no longer required hack.Richard Biener7-38/+69
2016-10-07 Richard Biener <rguenther@suse.de> * tree-ssa-propagate.c (replace_phi_args_in): Remove no longer required hack. (substitute_and_fold_dom_walker::before_dom_children): Substitute and fold before pass specific folding to avoid feeding that with SSA names that will be later released. * tree-ssa-ccp.c (get_value_for_expr): Guard for new SSA names introduced by folding and visited by evaluate_stmt called during ccp_fold_stmt. (likely_value): Likewise. (evaluate_stmt): Likewise. * tree-vrp.c (simplify_truth_ops_using_ranges): Fold modified stmt. (simplify_div_or_mod_using_ranges): Likewise. (simplify_min_or_max_using_ranges): Likewise. (simplify_abs_using_ranges): Likewise. (simplify_conversion_using_ranges): Likewise. (simplify_float_conversion_using_ranges): Likewise. (simplify_stmt_using_ranges): Likewise. * gcc.dg/tree-ssa/vrp01.c: Adjust. * gcc.dg/tree-ssa/vrp34.c: Likewise. From-SVN: r240865
2016-10-07gimplify.c (should_warn_for_implicit_fallthrough): Check for ↵Marek Polacek4-1/+37
FALLTHROUGH_LABEL_P here... * gimplify.c (should_warn_for_implicit_fallthrough): Check for FALLTHROUGH_LABEL_P here... (warn_implicit_fallthrough_r): ...not here. * c-c++-common/Wimplicit-fallthrough-22.c: New test. From-SVN: r240864
2016-10-07re PR c++/69733 (-Wignored-qualifiers points to wrong const)Bernd Schmidt8-5/+131
c/ PR c++/69733 * c-decl.c (smallest_type_quals_location): New static function. (grokdeclarator): Try to find the correct location for an ignored qualifier. cp/ PR c++/69733 * decl.c (grokdeclarator): Try to find the correct location for an ignored qualifier. testsuite/ PR c++/69733 * c-c++-common/pr69733.c: New test. * gcc.dg/pr69733.c: New test. * gcc.target/i386/pr69733.c: New test. From-SVN: r240863
2016-10-07re PR tree-optimization/77880 (out of memory building recent LLVM on ppc64le ↵Bernd Schmidt2-1/+7
with -O3) PR tree-optimization/77880 * expr.c (by_pieces_ninsns): Use unsigned HOST_WIDE_INT where necessary. From-SVN: r240862