2014-07-10  Rong Xu  <xur@google.com>

	Add gcov-tool: an offline gcda profile processing tool
	Support.
	* gcc/gcov-io.c (gcov_position): Make avaialble to gcov-tool.
	(gcov_is_error): Ditto.
	(gcov_read_string): Ditto.
	(gcov_read_sync): Ditto.
	* gcc/gcov-io.h: Move counter defines to gcov-counter.def.
	* gcc/gcov-dump.c (tag_counters): Use gcov-counter.def.
	* gcc/coverage.c: Ditto.
	* gcc/gcov-tool.c: Offline gcda profile processing tool.
        (unlink_gcda_file): Remove one gcda file.
	(unlink_profile_dir): Remove gcda files from the profile path.
	(gcov_output_files): Output gcda files to an output dir.
	(profile_merge): Merge two profiles in directory.
	(print_merge_usage_message): Print merge usage.
	(merge_usage): Print merge usage and exit.
	(do_merge): Driver for profile merge sub-command.
	(profile_rewrite): Rewrite profile.
	(print_rewrite_usage_message): Print rewrite usage.
	(rewrite_usage): Print rewrite usage and exit.
	(do_rewrite): Driver for profile rewrite sub-command.
	(print_usage): Print gcov-info usage and exit.
	(print_version): Print gcov-info version.
	(process_args): Process arguments.
	(main): Main routine for gcov-tool.
	* gcc/Makefile.in: Build and install gcov-tool.
	* gcc/gcov-counter.def: New file split from gcov-io.h.
	* libgcc/libgcov-driver.c (gcov_max_filename): Make available
        to gcov-tool.
	* libgcc/libgcov-merge.c (__gcov_merge_add): Replace
        gcov_read_counter() with a Macro.
	(__gcov_merge_ior): Ditto.
	(__gcov_merge_time_profile): Ditto.
	(__gcov_merge_single): Ditto.
	(__gcov_merge_delta): Ditto.
	* libgcc/libgcov-util.c (void gcov_set_verbose): Set the verbose flag
        in the utility functions.
	(set_fn_ctrs): Utility function for reading gcda files to in-memory
        gcov_list object link lists.
	(tag_function): Ditto.
	(tag_blocks): Ditto.
	(tag_arcs): Ditto.
	(tag_lines): Ditto.
	(tag_counters): Ditto.
	(tag_summary): Ditto.
	(read_gcda_finalize): Ditto.
	(read_gcda_file): Ditto.
	(ftw_read_file): Ditto.
	(read_profile_dir_init): Ditto.
	(gcov_read_profile_dir): Ditto.
	(gcov_read_counter_mem): Ditto.
	(gcov_get_merge_weight): Ditto.
	(merge_wrapper): A wrapper function that calls merging handler.
	(gcov_merge): Merge two gcov_info objects with weights.
	(find_match_gcov_info): Find the matched gcov_info in the list.
	(gcov_profile_merge): Merge two gcov_info object lists.
	(__gcov_add_counter_op): Process edge profile counter values.
	(__gcov_ior_counter_op): Process IOR profile counter values.
	(__gcov_delta_counter_op): Process delta profile counter values.
	(__gcov_single_counter_op): Process single  profile counter values.
	(fp_scale): Callback function for float-point scaling.
	(int_scale): Callback function for integer fraction scaling. 
	(gcov_profile_scale): Scaling profile counters.
	(gcov_profile_normalize): Normalize profile counters.
	* libgcc/libgcov.h: Add headers and functions for gcov-tool use.
        (gcov_get_counter): New.
        (gcov_get_counter_target): Ditto.
        (struct gcov_info): Make the functions field mutable in gcov-tool
        compilation.
	* gcc/doc/gcc.texi: Include gcov-tool.texi.
	* gcc/doc/gcov-tool.texi: Document for gcov-tool.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212448 138bc75d-0d04-0410-961f-82ee72b054a4
	PR target/56858
	* config/alpha/alpha.c: Include tree-pass.h, context.h
	and pass_manager.h.
	(pass_data_handle_trap_shadows): New pass.
	(pass_handle_trap_shadows::gate): New pass gate function.
	(make_pass_handle_trap_shadows): New function.
	(rest_of_handle_trap_shadows): Ditto.

	(alpha_align_insns_1): Rename from alpha_align_insns.
	(pass_data_align_insns): New pass.
	(pass_align_insns::gate): New pass gate function.
	(make_pass_aling_insns): New function.
	(rest_of_align_insns): Ditto.
	(alpha_align_insns): Ditto.

	(alpha_option_override): Declare handle_trap_shadows info
	and align_insns_info.  Register handle_trap_shadows and align_insns
	passes here.
	(alpha_reorg): Do not call alpha_trap_shadows and
	alpha_align_insn from here.

	(alpha_pad_function_end): Do not skip BARRIERs.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212449 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>

	PR target/61561
	* config/arm/arm.md (*movhi_insn_arch4): Handle stack pointer.
	(*movhi_bytes): Likewise.
	(*arm_movqi_insn): Likewise. 

gcc/testsuite/
2014-07-11  Marat Zakirov  <m.zakirov@samsung.com>

	PR target/61561
	* gcc.dg/pr61561.c: New test.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212450 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* gcc/config/i386/i386.c.orig


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212451 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/61473
	* builtins.c (fold_builtin_memory_op): Inline memory moves
	that can be implemented with a single load followed by a
	single store.
	(c_strlen): Only warn when only_value is not 2.

	* gcc.dg/memmove-4.c: New testcase.
	* gcc.dg/strlenopt-8.c: XFAIL.
	* gfortran.dg/coarray_lib_realloc_1.f90: Adjust.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212452 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-11  Samuel Bronson  <naesten@gmail.com>
	    Matthias Klose  <doko@ubuntu.com>

	PR libstdc++/58962
	* python/libstdcxx/v6/printers.py: Port to Python 2+3
	(imap): New compat function.
	(izip): Likewise.
	(Iterator): New mixin to allow writing iterators in Python 3 style
	regardless of which version we're running on.
	[Python3] (long) New compat alias for "int".
	* testsuite/lib/gdb-test.exp: Port to Python 2+3 (print syntax)

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212453 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/xtensa/predicates.md (call expander): Update for
	DECL_SECTION_NAME being string.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212454 138bc75d-0d04-0410-961f-82ee72b054a4
	gcc/
	* graphite-isl-ast-to-gimple.c (gmp_cst_to_tree):
	New function.
	(graphite_verify): New function.
	(ivs_params_clear): New function.
	(gcc_expression_from_isl_ast_expr_id): New function.
	(gcc_expression_from_isl_expr_int): New function.
	(binary_op_to_tree): New function.
	(ternary_op_to_tree): New function.
	(unary_op_to_tree): New function.
	(nary_op_to_tree): New function.
	(gcc_expression_from_isl_expr_op): New function.
	(gcc_expression_from_isl_expression): New function.
	(graphite_create_new_loop): New function.
	(translate_isl_ast_for_loop): New function.
	(get_upper_bound): New function.
	(graphite_create_new_loop_guard): New function.
	(translate_isl_ast_node_for): New function.
	(translate_isl_ast): New function.
	(add_parameters_to_ivs_params): New function.
	(scop_to_isl_ast): New parameter ip.
	(graphite_regenerate_ast_isl): Add generation of GIMPLE code.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212455 138bc75d-0d04-0410-961f-82ee72b054a4
PR preprocessor/61389
* gcc.dg/cpp/macsyntx.c: Update expected warnings.
* gcc.dg/cpp/sysmac1.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212457 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-11  Samuel Bronson  <naesten@gmail.com>

	* testsuite/lib/libstdc++.exp  (libstdc++_init): Set $GCC_COLORS=""
	instead of insisting that GCC understand -fdiagnostics-color=never

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212458 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-11  Samuel Bronson  <naesten@gmail.com>

	* testsuite/lib/gdb-test.exp (gdb-test): Turn off GDB's auto-load,
	list loaded libs.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212459 138bc75d-0d04-0410-961f-82ee72b054a4
        * config/rs6000/aix51.h (LINK_SPEC): Remove -bnodelcsect.
        * config/rs6000/aix52.h (LINK_SPEC): Same.
        * config/rs6000/aix53.h (LINK_SPEC): Same.
        * config/rs6000/aix61.h (LINK_SPEC): Same.
        * config/rs6000/xcoff.h (MAKE_DECL_ONE_ONLY): Define.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212460 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/avr/avr-arch.h (avr_mcu_t): Add text section start attribute.
	* config/avr/avr-devices.c (AVR_MCU): Same.
	(avr_mcu_types): add text start value to end of device list.
	* config/avr/avr-mcus.def: Add text section start for all devices.
	(ata5782): Add new avr5 device.
	(ata5831): Same.
	* config/avr/avr-tables.opt: Regenerate.
	* config/avr/avr.h: Add declaration for text section start handler.
	(EXTRA_SPEC_FUNCTIONS): Add text section start handler to SPEC function=
s.
	(LINK_SPEC): Include text section start handler to linker spec.
	* config/avr/driver-avr.c (avr_device_to_text_start): New function to
	pass -Ttext option to linker if the text section start for the device i=
s
	not zero.
	* config/avr/t-multilib: Regenerate.
	* doc/avr-mmcu.texi: Regenerate.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212461 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-11  Rong Xu  <xur@google.com>

	* gcov-tool.c (gcov_output_files): Fix build error introduced in
	commit r212448.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212462 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-11  Rong Xu  <xur@google.com>

	* libgcov-util.c (gcov_max_filename): Fix declartion.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212463 138bc75d-0d04-0410-961f-82ee72b054a4
2014-07-11  Vladimir Makarov  <vmakarov@redhat.com>

	* lra-constraints.c (remove_inheritance_pseudos): Process
	destination pseudo too.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212464 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa-prop.c (ipa_binfo_from_known_type_jfunc): In LTO do not walk
	non-polymorphic types.
	* ipa-cp.c (ipa_get_jf_ancestor_result): Likewise.
	* ipa-devirt.c (types_same_for_odr): Do not explode when one
	of types is not polymorphic.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212466 138bc75d-0d04-0410-961f-82ee72b054a4
	* vapool.c: Include tree-ssa-alias.h, gimple.h and lto-streamer.h
	(varpool_get_constructor): New function.
	(varpool_ctor_useable_for_folding_p): Break out from ...
	(ctor_for_folding): ... here; use varpool_get_constructor.
	(varpool_assemble_decl): Likewise.
	* lto-streamer.h (struct output_block): Turn cgraph_node
	to symbol filed.
	(lto_input_variable_constructor): Declare.
	* ipa-visibility.c (function_and_variable_visibility): Use
	varpool_get_constructor.
	* cgraph.h (varpool_get_constructor): Declare.
	(varpool_ctor_useable_for_folding_p): New function.
	* lto-streamer-out.c (get_symbol_initial_value): Take encoder
	parameter; return error_mark_node for non-trivial constructors.
	(lto_write_tree_1, DFS_write_tree): UPdate use of
	get_symbol_initial_value.
	(output_function): Update initialization of symbol.
	(output_constructor): New function.
	(copy_function): Rename to ..
	(copy_function_or_variable): ... this one; handle vars too.
	(lto_output): Output variable sections.
	* lto-streamer-in.c (input_constructor): New function.
	(lto_read_body): Rename from ...
	(lto_read_body_or_constructor): ... this one; handle vars
	too.
	(lto_input_variable_constructor): New function.
	* ipa-prop.c (ipa_prop_write_jump_functions,
	ipa_prop_write_all_agg_replacement): Update.
	* lto-cgraph.c (compute_ltrans_boundary): Use it.
	(output_cgraph_opt_summary): Set symbol to NULL.

	* lto-partition.c (add_references_to_partition): Use 
	varpool_ctor_useable_for_folding_p.
	* lto.c (lto_read_in_decl_state): Update sanity check.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212467 138bc75d-0d04-0410-961f-82ee72b054a4
	* doc/invoke.texi: Document -fno-use-all-virtuals.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212468 138bc75d-0d04-0410-961f-82ee72b054a4
/cp
2014-07-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53159
	* call.c (build_user_type_conversion_1): Copy LOOKUP_NO_NARROWING
	into convflags.
	* decl.c (check_initializer): Don't call check_narrowing here,
	set LOOKUP_NO_NARROWING.
	* typeck2.c (digest_init_r): Likewise.

/testsuite
2014-07-11  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/53159
	* g++.dg/cpp0x/Wnarrowing1.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@212469 138bc75d-0d04-0410-961f-82ee72b054a4