1. 14 Nov, 2014 39 commits
    • lra-int.h (lra_create_live_ranges): Add parameter. · 4ab74a01
      2014-11-14  Vladimir Makarov  <vmakarov@redhat.com>
      
      	* lra-int.h (lra_create_live_ranges): Add parameter.
      	* lra-lives.c (temp_bitmap): Move higher.
      	(initiate_live_solver): Move temp_bitmap initialization into
      	lra_live_ranges_init.
      	(finish_live_solver): Move temp_bitmap clearing into
      	live_ranges_finish.
      	(process_bb_lives): Add parameter.  Use it to control live info
      	update and dead insn elimination.  Pass it to mark_regno_live and
      	mark_regno_dead.
      	(lra_create_live_ranges): Add parameter.  Pass it to
      	process_bb_lives.
      	(lra_live_ranges_init, lra_live_ranges_finish): See changes in
      	initiate_live_solver and finish_live_solver.
      	* lra-remat.c (do_remat): Process insn non-operand hard regs too.
      	Use temp_bitmap to update avail_cands.
      	* lra.c (lra): Pass new parameter to lra_create_live_ranges.  Move
      	check with lra_need_for_spill_p after live range pass.  Switch on
      	rematerialization pass.
      
      From-SVN: r217588
      Vladimir Makarov committed
    • ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use agg_preserved flag instead. · 44210a96
      2014-11-14  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-prop.h (ipa_get_jf_pass_through_type_preserved): use
      	agg_preserved flag instead.
      	(ipa_get_jf_ancestor_type_preserved): Likewise.
      	(ipa_node_params): Rename known_vals to known_csts, update all users.
      	New field known_contexts.
      	(ipa_get_indirect_edge_target): Update prototype.
      	(ipcp_poly_ctx_values_pool): Declare.
      	(ipa_context_from_jfunc): Likewise.
      	* ipa-inline.h (estimate_ipcp_clone_size_and_time): Updated prototype.
      	* cgraph.h (ipa_polymorphic_call_context): New method equal_to.  New
      	parameter newline of method dump.
      	* ipa-cp.c (ctxlat): New field.
      	(ipcp_values_pool): Renamed to ipcp_cst_values_pool, updated all users.
      	(ipcp_poly_ctx_values_pool):New variable.
      	(ipa_get_poly_ctx_lat): New function.
      	(print_ipcp_constant_value): New overloaded function for contexts.
      	(print_all_lattices): Also print contexts.
      	(ipa_topo_info): New field contexts;
      	(set_all_contains_variable): Also set the flag in the context lattice.
      	(initialize_node_lattices): Likewise for flag bottom.
      	(ipa_get_jf_ancestor_result): Removed BINFO handling.
      	(ipa_value_from_jfunc): Likewise.
      	(ipa_context_from_jfunc): New function.
      	(values_equal_for_ipcp_p): New overloaded function for contexts.
      	(allocate_and_init_ipcp_value): Construct the value.
      	(allocate_and_init_ipcp_value): New overloaded function for contexts.
      	(propagate_scalar_accross_jump_function): Removed handling of
      	KNOWN_TYPE jump functions.
      	(propagate_context_accross_jump_function): New function.
      	(propagate_constants_accross_call): Also propagate contexts.
      	(ipa_get_indirect_edge_target_1): Work on contexts rather than BINFOs.
      	(ipa_get_indirect_edge_target): Likewise.
      	(devirtualization_time_bonus): Likewise.
      	(gather_context_independent_values): Create and populate known_contexts
      	vector rather than known_binfos.
      	(perform_estimation_of_a_value): Work on contexts rather than BINFOs.
      	(estimate_local_effects): Likewise.
      	(add_all_node_vals_to_toposort): Also add contexts to teir topological
      	sort.
      	(ipcp_propagate_stage): Also propagate effects of contexts.
      	(ipcp_discover_new_direct_edges): Receive and pass known_contexts to
      	ipa_get_indirect_edge_target_1.
      	(cgraph_edge_brings_value_p): New overloaded function for contexts.
      	(create_specialized_node): Work on contexts rather than BINFOs.
      	(find_more_contexts_for_caller_subset): New function.
      	(known_contexts_useful_p): New function.
      	(copy_useful_known_contexts): Likewise.
      	(modify_known_vectors_with_val): Likewise.
      	(ipcp_val_in_agg_replacements_p): Renamed to
      	ipcp_val_agg_replacement_ok_p, return true for all offset indicating
      	non-aggregate.
      	(ipcp_val_agg_replacement_ok_p): New overloaded function for contexts.
      	(decide_about_value): Work on contexts rather than BINFOs.
      	(decide_whether_version_node): Likewise.
      	(ipcp_driver): Initialize the new alloc pool.
      	* ipa-prop.c (ipa_print_node_jump_functions_for_edge): Prettify
      	printing of edge contexts.
      	(ipa_set_ancestor_jf): Replace assert with conditional setting of
      	type_preserved to false.
      	(update_jump_functions_after_inlining): Use access function instead of
      	reading agg_preserved directly.  Store combined context in the ancestor
      	case.
      	(try_make_edge_direct_virtual_call): Work on contexts rather than
      	BINFOs.
      	(update_indirect_edges_after_inlining): Get context from
      	ipa_context_from_jfunc.
      	(ipa_free_node_params_substructures): Free also known_contexts.
      	(ipa_free_all_structures_after_ipa_cp): Free the new alloc pool.
      	(ipa_free_all_structures_after_iinln): Likewise.
      	* ipa-inline-analysis.c (evaluate_properties_for_edge): Work on
      	contexts rather than BINFOs.
      	(estimate_edge_devirt_benefit): Likewise.
      	(estimate_edge_size_and_time): Likewise.
      	(estimate_calls_size_and_time): Likewise.
      	(estimate_node_size_and_time): Likewise.
      	(estimate_ipcp_clone_size_and_time): Likewise.
      	(do_estimate_edge_time): Likewise.
      	(do_estimate_edge_size): Likewise.
      	(do_estimate_edge_hints): Likewise.
      	* ipa-polymorphic-call.c (ipa_polymorphic_call_context::dump): New
      	parameter newline, ouput newline only when it is set.
      	(ipa_polymorphic_call_context::equal_to): New method.
      
      testsuite/
      	* g++.dg/ipa/devirt-11.C: Dont't run ipa-cp, remove times constraint
      	from the dump scan.
      	* g++.dg/ipa/devirt-21.C: Xfail.
      	* g++.dg/ipa/devirt-24.C: Likewise.
      	* g++.dg/ipa/devirt-10.C: Removed times constraint from the dump scan.
      	* g++.dg/ipa/devirt-41.C: Updated the dump scan.
      	* g++.dg/ipa/devirt-44.C: Likewise.
      	* g++.dg/ipa/devirt-43.C: Xfail.
      
      From-SVN: r217587
      Martin Jambor committed
    • ipa-cp.c (ipcp_value_source): Converted to a template class. · c0cb5055
      2014-11-14  Martin Jambor  <mjambor@suse.cz>
      
      	* ipa-cp.c (ipcp_value_source): Converted to a template class.  All
      	users converted to the same specialization as the using class/function
      	or specialization on tree.
      	(ipcp_value): Likewise.
      	(ipcp_lattice): Likewise.
      	(ipcp_agg_lattice): Now derived from tree specialization of
      	ipcp_lattice.
      	(values_topo): Moved to new class value_topo_info.
      	(ipa_lat_is_single_const): Turned into ipcp_lattice::is_single_const.
      	Updated all callers.
      	(print_lattice): Turned into ipcp_lattice::print.  Updated all
      	callers.
      	(value_topo_info): New class template.
      	(ipa_topo_info): New field constants.  New constructor.
      	(build_toporder_info): Do not clear stack_top, only checkign assert
      	it.
      	(set_lattice_to_bottom): Turned into ipcp_lattice::set_to_bottom.
      	Updated all callers.
      	(set_lattice_contains_variable): Turned into
      	ipcp_lattice::set_contains_variable.  Updated all callers.
      	(add_value_source): Turned into ipcp_value::add_source.  Updated all
      	callers.
      	(allocate_and_init_ipcp_value): New function.
      	(add_value_to_lattice): Turned into ipcp_lattice::add_value.  Last
      	parameter got default a value.  Updated all callers.
      	(add_scalar_value_to_lattice): Removed, users converted to using
      	ipcp_lattice::add_value with default value of the last parameter.
      	(add_val_to_toposort): Turned to value_topo_info::add_val.  Updated
      	all callers.
      	(propagate_effects): Made method of value_topo_info.
      	(cgraph_edge_brings_value_p): Now a template function.
      	(get_info_about_necessary_edges): Likewise.
      	(gather_edges_for_value): Likewise.
      	(perhaps_add_new_callers): Likewise.
      	(decide_about_value): Likewise.
      	* ipa-prop.h (ipcp_lattice): Remove fowrward declaration.
      
      From-SVN: r217586
      Martin Jambor committed
    • * doc/install.texi (--with-diagnostics-color=): Document. · b907149b
      From-SVN: r217585
      Jakub Jelinek committed
    • tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate IFN_GOMP_SIMD_LANE without lhs as useless. · a601baa0
      	* tree-ssa.dce.c (eliminate_unnecessary_stmts): Eliminate
      	IFN_GOMP_SIMD_LANE without lhs as useless.
      
      From-SVN: r217584
      Jakub Jelinek committed
    • runtime: set library name based on compiler name · 4c46b5f0
      Different compilers may have different release cadences or ABI
      incompatibilities, so it does not make sense to use the same library
      name for runtime libraries intended for different compilers.
      
      This CL causes a libgo built by llgo to receive the name libgo-llgo.
      Likewise, libgobegin is named libgobegin-llgo.
      
      From-SVN: r217583
      Ian Lance Taylor committed
    • ipa-pure-const.c (struct funct_state_d): Add can_free field. · 8413ca87
      	* ipa-pure-const.c (struct funct_state_d): Add can_free field.
      	(varying_state): Add true for can_free.
      	(check_call): For builtin or internal !nonfreeing_call_p set
      	local->can_free.
      	(check_stmt): For asm volatile and asm with "memory" set
      	local->can_free.
      	(analyze_function): Clear local->can_free initially, continue
      	calling check_stmt until all flags are computed, dump can_free
      	flag.
      	(pure_const_write_summary): Write can_free flag.
      	(pure_const_read_summary): Read it back.
      	(propagate_pure_const): Propagate also can_free flag, set
      	w->nonfreeing_fn if it is false after propagation.
      	* cgraph.h (cgraph_node): Add nonfreeing_fn member.
      	* gimple.c: Include ipa-ref.h, lto-streamer.h and cgraph.h.
      	(nonfreeing_call_p): Return cgraph nonfreeing_fn flag if set.
      	Also return true for IFN_ABNORMAL_DISPATCHER.
      	* cgraph.c (cgraph_node::dump): Dump nonfreeing_fn flag.
      	* lto-cgraph.c (lto_output_node): Write nonfreeing_fn flag.
      	(input_overwrite_node): Read it back.
      
      From-SVN: r217582
      Jakub Jelinek committed
    • sanopt.c: Include tree-ssa-operands.h. · ab9a4330
      	* sanopt.c: Include tree-ssa-operands.h.
      	(struct sanopt_info): Add has_freeing_call_p,
      	has_freeing_call_computed_p, imm_dom_path_with_freeing_call_p,
      	imm_dom_path_with_freeing_call_computed_p, freeing_call_events,
      	being_visited_p fields.
      	(struct sanopt_ctx): Add asan_check_map field.
      	(imm_dom_path_with_freeing_call, maybe_optimize_ubsan_null_ifn,
      	maybe_optimize_asan_check_ifn): New functions.
      	(sanopt_optimize_walker): Use them, optimize even ASAN_CHECK
      	internal calls.
      	(pass_sanopt::execute): Call sanopt_optimize even for
      	-fsanitize=address.
      	* gimple.c (nonfreeing_call_p): Return true for non-ECF_LEAF
      	internal calls.
      
      Co-Authored-By: Marek Polacek <polacek@redhat.com>
      
      From-SVN: r217581
      Jakub Jelinek committed
    • [Vectorizer] Tidy up vect_create_epilog / use_scalar_result · 18d11814
      	* tree-vect-loop.c (vect_create_epilog_for_reduction): Move code for
      	'if (extract_scalar_result)' to the only place that it is true.
      
      From-SVN: r217580
      Alan Lawrence committed
    • e.54.2.c (main): Use N / 8 instead of 32 as block_size. · b1bf6c52
      	* libgomp.c/examples-4/e.54.2.c (main): Use N / 8 instead
      	of 32 as block_size.
      	* libgomp.fortran/examples-4/e.54.2.f90 (e_54_1): Use n / 8
      	instead of 32 as block_size.
      
      From-SVN: r217579
      Jakub Jelinek committed
    • * dwarf2.def (DW_AT_APPLE_optimized, DW_AT_APPLE_flags) · d8607f25
      	(DW_AT_APPLE_isa, DW_AT_APPLE_block)
      	(DW_AT_APPLE_major_runtime_vers, DW_AT_APPLE_runtime_class)
      	(DW_AT_APPLE_omit_frame_ptr, DW_AT_APPLE_property_name)
      	(DW_AT_APPLE_property_getter, DW_AT_APPLE_property_setter)
      	(DW_AT_APPLE_property_attribute, DW_AT_APPLE_objc_complete_type)
      	(DW_AT_APPLE_property): New macros.
      
      From-SVN: r217578
      Shinichiro Hamaji committed
    • semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr. · 234bef96
      2014-11-14  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* semantics.c (end_maybe_infinite_loop): Use fold_non_dependent_expr.
      	* parser.c (cp_parser_omp_clause_collapse): Likewise.
      	(cp_parser_enumerator_definition): Don't call
      	instantiate_non_dependent_expr...
      	* decl.c (build_enumerator): ... call fold_non_dependent_expr here.
      	* typeck2.c (massage_init_elt): Use fold_non_dependent_expr.
      	* constexpr.c (maybe_constant_value): Allow VIEW_CONVERT_EXPR in
      	the final gcc_assert.
      
      	* constexpr.c (fold_non_dependent_expr): Add.
      	* cp-tree.h (fold_non_dependent_expr): Declare it.
      	* call.c (null_ptr_cst_p): Use it.
      	* pt.c (tsubst_copy_and_build, build_non_dependent_expr): Likewise.
      	* semantics.c (begin_maybe_infinite_loop): Likewise.
      	* typeck.c (cp_build_binary_op): Likewise.
      	* typeck2.c (check_narrowing): Likewise.
      
      	* pt.c (fold_non_dependent_expr): Rename to
      	instantiate_non_dependent_expr.
      	(fold_non_dependent_expr_sfinae): Rename to
      	instantiate_non_dependent_expr_sfinae.
      	(convert_nontype_argument, build_non_dependent_expr): Adjust.
      	* decl.c (compute_array_index_type): Likewise.
      	* parser.c (cp_parser_parenthesized_expression_list,
      	cp_parser_enumerator_definition, cp_parser_omp_clause_collapse):
      	Likewise.
      	* semantics.c (end_maybe_infinite_loop, finish_static_assert):
      	Likewise.
      	* typeck.c (cxx_alignas_expr): Likewise.
      	* typeck2.c (store_init_value, massage_init_elt): Likewise.
      	* call.c: Adjust comments.
      	* class.c: Likewise.
      	* constexpr.c: Likewise.
      	* decl2.c: Likewise.
      	* tree.c: Likewise.
      
      From-SVN: r217577
      Paolo Carlini committed
    • mt_allocator.cc: Fix assumption that sizeof(void *) is equal to sizeof(size_t). · 2c59c2d1
      2014-11-14  Joel Sherrill <joel.sherrill@oarcorp.com>
      
      	* src/c++98/mt_allocator.cc: Fix assumption that sizeof(void *) is
      	equal to sizeof(size_t). The m32c breaks this assumption.
      
      From-SVN: r217576
      Joel Sherrill committed
    • Don't enable IFUNC by default for Android and uclibc · ba86734c
      	* config.gcc (default_gnu_indirect_function): Set to yes
      	for i[34567]86-*-linux* and x86_64-*-linux* if not targeting
      	Android nor uclibc.
      
      From-SVN: r217575
      H.J. Lu committed
    • aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use VALL mode iterator instead of VALLDI. · 73295417
              * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): Use
              VALL mode iterator instead of VALLDI.
      
      Co-Authored-By: Jiji Jiang <jiangjiji@huawei.com>
      
      From-SVN: r217573
      Felix Yang committed
    • optc-save-gen.awk: Output cl_target_option_eq... · 325fe981
      
      	* optc-save-gen.awk: Output cl_target_option_eq,
      	cl_target_option_hash, cl_target_option_stream_out,
      	cl_target_option_stream_in functions.
      	* opth-gen.awk: Output prototypes for
      	cl_target_option_eq and cl_target_option_hash.
      	* lto-streamer.h (cl_target_option_stream_out,
      	cl_target_option_stream_in): Declare.
      	* tree.c (cl_option_hash_hash): Use cl_target_option_hash.
      	(cl_option_hash_eq): Use cl_target_option_eq.
      	* tree-streamer-in.c (unpack_value_fields): Stream in
      	TREE_TARGET_OPTION.
      	* lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
      	DECL_FUNCTION_SPECIFIC_TARGET.
      	(hash_tree): Hash TREE_TARGET_OPTION; visit
      	DECL_FUNCTION_SPECIFIC_TARGET.
      	* tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
      	TS_TARGET_OPTION.
      	(streamer_write_tree_body): Output TS_TARGET_OPTION.
      
      	* lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.
      
      From-SVN: r217572
      Jan Hubicka committed
    • optc-save-gen.awk: Output cl_target_option_eq... · 54e774c0
      
      	* optc-save-gen.awk: Output cl_target_option_eq,
      	cl_target_option_hash, cl_target_option_stream_out,
      	cl_target_option_stream_in functions.
      	* opth-gen.awk: Output prototypes for
      	cl_target_option_eq and cl_target_option_hash.
      	* lto-streamer.h (cl_target_option_stream_out,
      	cl_target_option_stream_in): Declare.
      	* tree.c (cl_option_hash_hash): Use cl_target_option_hash.
      	(cl_option_hash_eq): Use cl_target_option_eq.
      	* tree-streamer-in.c (unpack_value_fields): Stream in
      	TREE_TARGET_OPTION.
      	* lto-streamer-out.c (DFS::DFS_write_tree_body): Follow
      	DECL_FUNCTION_SPECIFIC_TARGET.
      	(hash_tree): Hash TREE_TARGET_OPTION; visit
      	DECL_FUNCTION_SPECIFIC_TARGET.
      	* tree-streamer-out.c (streamer_pack_tree_bitfields): Skip
      	TS_TARGET_OPTION.
      	(streamer_write_tree_body): Output TS_TARGET_OPTION.
      
      	* lto.c (compare_tree_sccs_1): Compare cl_target_option_eq.
      
      From-SVN: r217571
      Jan Hubicka committed
    • Makefile.am (AM_CXXFLAGS): Use -std=gnu++11. · 7f201a67
      	* sanitizer_common/Makefile.am (AM_CXXFLAGS): Use -std=gnu++11.
      	* asan/Makefile.am (AM_CXXFLAGS): Ditto.
      	* lsan/Makefile.am (AM_CXXFLAGS): Ditto.
      	* interception/Makefile.am (AM_CXXFLAGS): Ditto.
      	* tsan/Makefile.am (AM_CXXFLAGS): Ditto.
      	* libbacktrace/Makefile.am (AM_CXXFLAGS): Ditto.
      	* ubsan/Makefile.am (AM_CXXFLAGS): Ditto.
      	* sanitizer_common/Makefile.in: Regenerate.
      	* asan/Makefile.in: Ditto.
      	* lsan/Makefile.in: Ditto.
      	* interception/Makefile.in: Ditto.
      	* tsan/Makefile.in: Ditto.
      	* libbacktrace/Makefile.in: Ditto.
      	* ubsan/Makefile.in: Ditto.
      
      From-SVN: r217562
      Uros Bizjak committed
    • gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd valueization hook… · d2a85801
      gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd valueization hook defaulted to no_follow_ssa_edges.
      
      2014-11-14  Richard Biener  <rguenther@suse.de>
      
      	* gimple-fold.h (gimple_fold_stmt_to_constant_1): Add 2nd
      	valueization hook defaulted to no_follow_ssa_edges.
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Pass
      	2nd valueization hook to gimple_simplify.
      	* tree-ssa-ccp.c (valueize_op_1): New function to be
      	used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
      	(ccp_fold): Adjust.
      	* tree-vrp.c (vrp_valueize_1): New function to be
      	used for gimple_simplify called via gimple_fold_stmt_to_constant_1.
      	(vrp_visit_assignment_or_call): Adjust.
      
      From-SVN: r217560
      Richard Biener committed
    • Define C++11 version of std::ios_base::failure. · a5dde6dd
      	* config/abi/pre/gnu.ver: Add new exports.
      	* include/bits/ios_base.h (ios_base::failure): New definition using
      	abi_tag.
      	(io_errc, make_error_code, make_error_category, iostream_category):
      	Define.
      	* include/std/system_error (system_error): Add char* constructors.
      	* src/c++11/Makefile.am: Add new file.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++11/cxx11-ios_failure.cc: New file.
      	* src/c++98/ios_failure.cc: Compile old definition without abi_tag.
      	* testsuite/27_io/ios_base/failure/cxx11.cc: New.
      	* testsuite/27_io/ios_base/failure/what-1.cc: Allow string returned by
      	ios_base::failure::what() to contain additional data.
      	* testsuite/27_io/ios_base/failure/what-2.cc: Likewise..
      	* testsuite/27_io/ios_base/failure/what-3.cc: Likewise..
      	* testsuite/27_io/ios_base/failure/what-big.cc: Likewise..
      
      From-SVN: r217559
      Jonathan Wakely committed
    • Fix patch mangling with --inline option · 78d7f09f
      2014-11-14  Tom de Vries  <tom@codesourcery.com>
      
      	* mklog: Move reading of .diff file up and add comment.  Copy diff_lines
      	to orig_diff_lines.  Use orig_diff_lines when appending patch.
      
      From-SVN: r217558
      Tom de Vries committed
    • mangle.c (find_substitution): Look for abi_tag on class templates. · cbe4c88c
      gcc/cp:
      	* mangle.c (find_substitution): Look for abi_tag on class templates.
      
      gcc/testsuite:
      	* g++.dg/abi/abi-tag11.C: New.
      
      From-SVN: r217557
      Jonathan Wakely committed
    • fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if that overflows when… · c7274165
      fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if that overflows when SANITIZE_SI_OVERFLOW is on.
      
      	* fold-const.c (fold_negate_expr): Don't fold INTEGER_CST if
      	that overflows when SANITIZE_SI_OVERFLOW is on.  Guard -(-A)
      	folding with TYPE_OVERFLOW_SANITIZED.
      
      	* c-c++-common/ubsan/overflow-negate-3.c: New test.
      
      From-SVN: r217556
      Marek Polacek committed
    • re PR sanitizer/63839 (ICE: tree check: expected ssa_name, have var_decl in… · 4088b790
      re PR sanitizer/63839 (ICE: tree check: expected ssa_name, have var_decl in simplify_builtin_call, at tree-ssa-forwprop.c:1441 with -fsanitize=unreachable)
      
      	PR sanitizer/63839
      	* asan.c (ATTR_CONST_NORETURN_NOTHROW_LEAF_LIST,
      	ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST): Define.
      	* builtin-attrs.def (ATTR_COLD_CONST_NORETURN_NOTHROW_LEAF_LIST):
      	Define.
      	* builtins.c (fold_builtin_0): Don't include ubsan.h.  Don't
      	instrument BUILT_IN_UNREACHABLE here.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Make
      	const.
      	* sanopt.c (pass_sanopt::execute): Instrument BUILT_IN_UNREACHABLE.
      	* tree-ssa-ccp.c (optimize_unreachable): Bail out if
      	SANITIZE_UNREACHABLE.
      	* ubsan.c (ubsan_instrument_unreachable): Rewrite for GIMPLE.
      	* ubsan.h (ubsan_instrument_unreachable): Adjust declaration.
      testsuite/
      	* c-c++-common/ubsan/pr63839.c: New test.
      	* c-c++-common/ubsan/unreachable-2.c: New test.
      
      From-SVN: r217553
      Marek Polacek committed
    • [RS6000] Remove vec_shl and (hopefully) fix vec_shr · ba067536
      	* config/rs6000/vector.md (vec_shl_<mode>): Remove.
      	(vec_shr_<mode>): Reverse shift if BYTES_BIG_ENDIAN.
      
      From-SVN: r217552
      Alan Lawrence committed
    • Fix ChangeLog date · ebaea9ba
      From-SVN: r217551
      Alan Lawrence committed
    • [Vectorizer]Make reductions-via-shifts and vec_shr_optab endianness-neutral · 729ff76e
              * optabs.c (shift_amt_for_vec_perm_mask): Remove code conditional on
              BYTES_BIG_ENDIAN.
              * tree-vect-loop.c (calc_vec_perm_mask_for_shift,
              vect_create_epilog_for_reduction): Likewise.
              * doc/md.texi (vec_shr_m): Clarify direction of shifting.
      
      From-SVN: r217550
      Alan Lawrence committed
    • re PR target/63724 ([AArch64] Inefficient immediate expansion and hoisting.) · 82614948
      Fix PR target/63724
      
      2014-11-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
      
      	PR target/63724
              * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
              numerical immediate handling to...
              (aarch64_internal_mov_immediate): ...this. New.
              (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
              (aarch64_mov_operand_p): Relax predicate.
              * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
              (*movsi_aarch64): Turn into define_insn_and_split and new alternative
              for 'n'.
              (*movdi_aarch64): Likewise.
      
      From-SVN: r217546
      Ramana Radhakrishnan committed
    • match.pd: Implement more binary patterns exercised by fold_stmt. · a7f24614
      2014-11-14  Richard Biener  <rguenther@suse.de>
      
      	* match.pd: Implement more binary patterns exercised by
      	fold_stmt.
      	* fold-const.c (sing_bit_p): Export.
      	(exact_inverse): Likewise.
      	(fold_binary_loc): Remove patterns here.
      	(tree_unary_nonnegative_warnv_p): Use CASE_CONVERT.
      	* fold-const.h (sing_bit_p): Declare.
      	(exact_inverse): Likewise.
      
      	* gcc.c-torture/execute/shiftopt-1.c: XFAIL invalid parts.
      
      From-SVN: r217545
      Richard Biener committed
    • genmatch.c (add_operator): Allow CONSTRUCTOR. · 10230017
      2014-11-14  Richard Biener  <rguenther@suse.de>
      
      	* genmatch.c (add_operator): Allow CONSTRUCTOR.
      	(dt_node::gen_kids): Handle CONSTRUCTOR not as GENERIC.
      	(parser::parse_op): Allow to iterate over predicates.
      
      From-SVN: r217541
      Richard Biener committed
    • configure.ac (--with-diagnostics-color): New configure option, default to… · 899c78ae
      configure.ac (--with-diagnostics-color): New configure option, default to --with-diagnostics-color=auto.
      
      	* configure.ac (--with-diagnostics-color): New configure
      	option, default to --with-diagnostics-color=auto.
      	* toplev.c (process_options): Use DIAGNOSTICS_COLOR_DEFAULT
      	to determine -fdiagnostics-color= option default.
      	* doc/invoke.texi (-fdiagnostics-color=): Document new
      	default.
      	* configure: Regenerated.
      	* config.in: Regenerated.
      
      From-SVN: r217540
      Jakub Jelinek committed
    • re PR tree-optimization/63841 (Incorrect strlen optimization after complete unroll) · 5004bd00
      2014-11-13  Teresa Johnson  <tejohnson@google.com>
      
      gcc:
      	PR tree-optimization/63841
      	* tree-ssa-strlen.c (strlen_optimize_stmt): Ignore clobbers.
      
      2014-11-13  Teresa Johnson  <tejohnson@google.com>
      
      gcc/testsuite:
      	PR tree-optimization/63841
      	* g++.dg/tree-ssa/pr63841.C: Remove prints, use abort.
      
      From-SVN: r217537
      Teresa Johnson committed
    • * cas_n.c (libat_compare_exchange): Add missing cast. · ca3d99a6
      From-SVN: r217536
      Andrew Waterman committed
    • regex.h: Support embedded zeros in sub_match comparisons (DR 2217) · b82e9b01
      2014-11-13  Daniel Kruegler  <daniel.kruegler@gmail.com>
      
      	* include/bits/regex.h: Support embedded zeros in sub_match
      	comparisons (DR 2217)
      	* testsuite/28_regex/sub_match/embedded_zeros_cmp.cc:
      	Add test cases for embedded zeros
      
      From-SVN: r217535
      Daniel Kruegler committed
    • timevar.def (TV_SCHED_FUSION): New time var. · b16abbcb
      
      	* timevar.def (TV_SCHED_FUSION): New time var.
      	* passes.def (pass_sched_fusion): New pass.
      	* config/arm/arm.c (TARGET_SCHED_FUSION_PRIORITY): New.
      	(extract_base_offset_in_addr, fusion_load_store): New.
      	(arm_sched_fusion_priority): New.
      	(arm_option_override): Disable scheduling fusion by default
      	on non-armv7 processors or ldrd/strd isn't preferred.
      	* sched-int.h (struct _haifa_insn_data): New field.
      	(INSN_FUSION_PRIORITY, FUSION_MAX_PRIORITY, sched_fusion): New.
      	* sched-rgn.c (rest_of_handle_sched_fusion): New.
      	(pass_data_sched_fusion, pass_sched_fusion): New.
      	(make_pass_sched_fusion): New.
      	* haifa-sched.c (sched_fusion): New.
      	(insn_cost): Handle sched_fusion.
      	(priority): Handle sched_fusion by calling target hook.
      	(enum rfs_decision): New enum value.
      	(rfs_str): New element for RFS_FUSION.
      	(rank_for_schedule): Support sched_fusion.
      	(schedule_insn, max_issue, prune_ready_list): Handle sched_fusion.
      	(schedule_block, fix_tick_ready): Handle sched_fusion.
      	* common.opt (flag_schedule_fusion): New.
      	* tree-pass.h (make_pass_sched_fusion): New.
      	* target.def (fusion_priority): New.
      	* doc/tm.texi.in (TARGET_SCHED_FUSION_PRIORITY): New.
      	* doc/tm.texi: Regenerated.
      	* doc/invoke.texi (-fschedule-fusion): New.
      
      	testsuite:
      	* gcc.target/arm/ldrd-strd-pair-1.c: New test.
      	* gcc.target/arm/vfp-1.c: Improve scanning string.
      
      From-SVN: r217533
      Bin Cheng committed
    • re PR debug/63581 (undefined references in debug_info) · 0fb3402f
      2014-11-13  Rong Xu  <xur@google.com>
      
      gcc:
      	PR debug/63581
      	* cfgrtl.c (emit_barrier_after_bb): Append the barrier to the
       	footer, instead of unconditionally overwritten
      
      gcc/testsuite:
      	PR debug/63581
      	* g++.dg/tree-prof/pr63581.C: New test.
      
      From-SVN: r217530
      Rong Xu committed
    • cgraph.h (clear_outer_type): Make public. · 6ff65dd7
      2014-11-14  Martin Jambor  <mjambor@suse.cz>
      
      	* cgraph.h (clear_outer_type): Make public.  Fix comment.
      	* ipa-devirt.c (possible_polymorphic_call_targets): Use
      	clear_outer_type when resetting the context.
      
      From-SVN: r217529
      Martin Jambor committed
    • Daily bump. · 453f025a
      From-SVN: r217528
      GCC Administrator committed
  2. 13 Nov, 2014 1 commit