2013-11-22  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59054
	* gcc.target/powerpc/direct-move.h (VSX_REG_ATTR): Allow test to
	specify an appropriate register class for VSX operations.
	(load_vsx): Use it.
	(load_gpr_to_vsx): Likewise.
	(load_vsx_to_gpr): Likewise.
	* gcc.target/powerpc/direct-move-vint1.c: Use an appropriate
	register class for VSX registers that the type can handle.  Remove
	checks for explicit number of instructions generated, just check
	if the instruction is generated.
	* gcc.target/powerpc/direct-move-vint2.c: Likewise.
	* gcc.target/powerpc/direct-move-float1.c: Likewise.
	* gcc.target/powerpc/direct-move-float2.c: Likewise.
	* gcc.target/powerpc/direct-move-double1.c: Likewise.
	* gcc.target/powerpc/direct-move-double2.c: Likewise.
	* gcc.target/powerpc/direct-move-long1.c: Likewise.
	* gcc.target/powerpc/direct-move-long2.c: Likewise.

	* gcc.target/powerpc/pr59054.c: Remove duplicate code.

	* gcc.target/powerpc/bool3-av.c: Limit to 64-bit mode for now.
	* gcc.target/powerpc/bool3-p7.c: Likewise.
	* gcc.target/powerpc/bool3-p8.c: Likewise.

	* gcc.target/powerpc/p8vector-ldst.c: Just check that the
	appropriate instructions are generated, don't check the count.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205278 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-ssa-threadedge.c (record_temporary_equivalence): Handle
	NULL for RHS, which we used to invalidate equivalences.
	(record_temporary_equivalences_from_phis): New bitmap arguments
	and a boolean indicating if we have passed a backedge.  If we
	have passed a backedge, then set the appropriate bit in the
	bitmaps for the SRC & DEST of PHIs creating equivalences.
	(invalidate_equivalences, dummy_simplify): New functions.
	(cond_arg_set_in_b): Remove.
	(record_temporary_equivalences_from_stmts_at_dest): New bitmap
	arguments and a boolean indicating if we have passed a backedge.
	If we have passed a backedge, then perform invalidations as
	needed.
	(thread_around_empty_blocks): If we have seen a backedge, then
	use the dummy simplify routine.
	(thread_through_normal_block): Likewise.  Pass bitmaps and
	backedge status to children.  Do not pessimize so much when
	traversing backedges in the CFG.
	(thread_across_edge): Manage the SRC_MAP/DST_MAP bitmaps.
	If we have seen a backedge, then use the dummy simplify routine.
	Do not pessimize so much when traversing backedges.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205279 138bc75d-0d04-0410-961f-82ee72b054a4
	PR rtl-optimization/10474
	* ira.c (interesting_dest_for_shprep_1): New function.
	(interesting_dest_for_shprep): Use interesting_dest_for_shprep_1,
	also check parallels.

testsuite/
	* gcc.dg/pr10474.c: Also test ppc64.
	* gcc.dg/ira-shrinkwrap-prep-1.c: Also tes ppc64, changed all ints
        to longs.
	* gcc.dg/ira-shrinkwrap-prep-2.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205281 138bc75d-0d04-0410-961f-82ee72b054a4
	* sanitizer.def (BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT,
	BUILT_IN_ASAN_AFTER_DYNAMIC_INIT): New.
	* asan.c (instrument_derefs): Handle also VAR_DECL loads/stores.
	Don't instrument accesses to VAR_DECLs which are known to fit
	into their bounds and the vars are known to have shadow bytes
	indicating allowed access.
	(asan_dynamic_init_call): New function.
	(asan_add_global): If vnode->dynamically_initialized,
	set __has_dynamic_init to 1 instead of 0.
	(initialize_sanitizer_builtins): Add BT_FN_VOID_CONST_PTR var.
	* asan.h (asan_dynamic_init_call): New prototype.
	* cgraph.h (varpool_node): Add dynamically_initialized bitfield.
cp/
	* decl2.c: Include asan.h.
	(one_static_initialization_or_destruction): If -fsanitize=address,
	init is non-NULL and guard is NULL, set
	vnode->dynamically_initialized.
	(do_static_initialization_or_destruction): Call
	__asan_{before,after}_dynamic_init around the static initialization.
testsuite/
	* c-c++-common/asan/no-redundant-instrumentation-1.c: Tweak to avoid
	optimizing away some __asan_report* calls.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205282 138bc75d-0d04-0410-961f-82ee72b054a4
	* ubsan.c (ubsan_source_location): Don't crash on
	unknown locations.
	(ubsan_pass): Ignore clobber stmts.

	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_MISSING_RETURN): New built-in.
	* opts.c (common_handle_option): Add -fsanitize=return.
	* flag-types.h (enum sanitize_code): Add SANITIZE_RETURN and
	or it into SANITIZE_UNDEFINED.
c-family/
	* c-ubsan.h (ubsan_instrument_return): New prototype.
	* c-ubsan.c (ubsan_instrument_return): New function.
cp/
	* cp-gimplify.c: Include target.h and c-family/c-ubsan.h.
	(cp_ubsan_maybe_instrument_return): New function.
	(cp_genericize): Call it if -fsanitize=return.
testsuite/
	* g++.dg/ubsan/return-1.C: New test.
	* g++.dg/ubsan/return-2.C: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205283 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa.c (symtab_remove_unreachable_nodes): Fix up comment typos.
	* ipa-prop.c (get_vector_of_formal_parm_types): Renamed to ...
	(ipa_get_vector_of_formal_parm_types): ... this.  No longer static.
	(ipa_modify_formal_parameters): Adjust caller.  Remove
	synth_parm_prefix argument.  Use operator enum instead of bit fields.
	Add assert for properly handling vector of references.  Handle
	creating brand new parameters.
	(ipa_modify_call_arguments): Use operator enum instead of bit
	fields.
	(ipa_combine_adjustments): Same.  Assert that IPA_PARM_OP_NEW is not
	used.
	(ipa_modify_expr, get_ssa_base_param, ipa_get_adjustment_candidate):
	New functions.
	(ipa_dump_param_adjustments): Rename reduction to new_decl.
	Use operator enum instead of bit fields.
	* ipa-prop.h (enum ipa_parm_op): New.
	(struct ipa_parm_adjustment): New field op.  Rename reduction
	to new_decl, new_arg_prefix to arg_prefix and remove remove_param
	and copy_param.
	(ipa_modify_formal_parameters): Remove last argument.
	(ipa_get_vector_of_formal_parm_types, ipa_modify_expr,
	ipa_get_adjustment_candidate): New prototypes.
	* tree-sra.c (turn_representatives_into_adjustments): Use operator
	enum.  Set arg_prefix.
	(get_adjustment_for_base): Use operator enum.
	(sra_ipa_modify_expr): Rename to ipa_modify_expr and move to
	ipa-prop.c.
	(sra_ipa_modify_assign): Rename sra_ipa_modify_expr to
	ipa_modify_expr.
	(ipa_sra_modify_function_body): Same.  No longer static.
	(sra_ipa_reset_debug_stmts): Use operator enum.
	(modify_function): Do not pass prefix argument.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205284 138bc75d-0d04-0410-961f-82ee72b054a4
        * sanitizer_common/sanitizer_linux.cc (__sanitizer): Grab one
        change from upstream to fix build.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205285 138bc75d-0d04-0410-961f-82ee72b054a4
	* testsuite/Makefile.am (check_DEJAGNU_normal_targets): Add 10.
	(check-DEJAGNU): Add normal10, run 28_regex/[ab]*
	tests as another separate job.
	* testsuite/Makefile.in: Regenerated.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205286 138bc75d-0d04-0410-961f-82ee72b054a4
libgo: Update libtool support for powerpc64le-linux-gnu.

From Ulrich Weigand.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205287 138bc75d-0d04-0410-961f-82ee72b054a4
	* gcc.dg/20081223-1.c: Add -ffat-lto-objects.
	* gcc.dg/vect/vect.exp: Add -ffat-lto-objects.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205288 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-22  François Dumont  <fdumont@gcc.gnu.org>

	* include/debug/safe_local_iterator.h (_Safe_local_iterator<>):
	Remove _M_bucket, use same information in normal local_iterator.
	(operator==): Remove redundant _M_can_compare check.
	* include/debug/safe_local_iterator.tcc: Adapt.
	* include/debug/unordered_set: Likewise.
	* include/debug/unordered_map: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205289 138bc75d-0d04-0410-961f-82ee72b054a4
	PR sanitizer/59061
	* common.opt (static-liblsan): Add.
	* config/gnu-user.h (STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS):
	Define.
	* flag-types.h (enum sanitize_code): Add SANITIZE_LEAK.  Renumber
	SANITIZE_SHIFT, SANITIZE_DIVIDE, SANITIZE_UNREACHABLE, SANITIZE_VLA,
	SANITIZE_RETURN.
	* opts.c (common_handle_option): Handle -fsanitize=leak.
	* gcc.c (ADD_STATIC_LIBLSAN_LIBS, LIBLSAN_SPEC): Define.
	(LIBUBSAN_SPEC): Don't test LIBUBSAN_EARLY_SPEC.
	(LIBUBSAN_EARLY_SPEC): Remove.
	(SANITIZER_EARLY_SPEC): Don't do anything for libubsan.
	(SANITIZER_SPEC): Add -fsanitize=leak handling.
	(sanitize_spec_function): Handle %sanitize(leak).
	* doc/invoke.texi (-static-liblsan, -fsanitize=leak): Document.

	* c-c++-common/asan/no-redundant-instrumentation-7.c: Fix
	cleanup-tree-dump directive.

	* configure.tgt: Set LSAN_SUPPORTED=yes for x86_64-linux.
	* configure.ac (LSAN_SUPPORTED): New AM_CONDITIONAL.
	* configure: Regenerated.
	* lsan/Makefile.am (toolexeclib_LTLIBRARIES, lsan_files,
	liblsan_la_SOURCES, liblsan_la_LIBADD, liblsan_la_LDFLAGS): Add.
	* lsan/Makefile.in: Regenerated.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205290 138bc75d-0d04-0410-961f-82ee72b054a4
Fix demangler to handle conversion operators correctly.

libiberty/
	PR other/59195
	* cp-demangle.c (struct d_info_checkpoint): New struct.
	(struct d_print_info): Add current_template field.
	(d_operator_name): Set flag when processing a conversion
	operator.
	(cplus_demangle_type): When processing <template-args> for
	a conversion operator, backtrack if necessary.
	(d_expression_1): Renamed from d_expression.
	(d_expression): New wrapper around d_expression_1.
	(d_checkpoint): New function.
	(d_backtrack): New function.
	(d_print_init): Initialize current_template.
	(d_print_comp): Set current_template.
	(d_print_cast): Put current_template in scope for
	printing conversion operator name.
	(cplus_demangle_init_info): Initialize is_expression and
	is_conversion.
	* cp-demangle.h (struct d_info): Add is_expression and
	is_conversion fields.
	* testsuite/demangle-expected: New test cases.


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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205297 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/rs6000/vsx.md (fusion peepholes): Disable when !TARGET_VSX.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205299 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/bfin/bfin-protos.h (push_multiple_operation): Delete.
	(pop_multiple_operation): Delete.
	(analyze_push_multiple_operation): Declare.
	(analyze_pop_multiple_operation): Declare.
	* config/bfin/bfin.c (push_multiple_operation): Rename to...
	(analyze_push_multiple_operation): ...this and remove mode argument.
	(pop_multiple_operation): Rename to...
	(analyze_pop_multiple_operation): ...this and remove mode argument.
	* config/bfin/predicates.md (push_multiple_operation): Define.
	(pop_multiple_operation): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205301 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation):
	Delete.
	(mn10300_store_multiple_operation_p): Declare.
	* config/mn10300/mn10300.c (mn10300_store_multiple_operation):
	Rename to...
	(mn10300_store_multiple_operation_p): ...this and remove mode
	argument.
	* config/mn10300/predicates.md (mn10300_store_multiple_operation):
	Define.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205302 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* config/sh/sh.md: Use nonimmediate_operand rather than general_operand
	for the destination of a define_peephole2.  Likewise register_operand
	rather than arith_reg_operand.  Remove constraints from
	define_peephole2s.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205303 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-23  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/59228
	* interface.c (compare_parameter): Check for array spec.

2013-11-23  Janus Weil  <janus@gcc.gnu.org>

	PR fortran/59228
	* gfortran.dg/asynchronous_4.f90: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@205304 138bc75d-0d04-0410-961f-82ee72b054a4
	* gimplify.h (recalculate_side_effects): Delete.
	* gimplify.c (recalculate_side_effects): Make static and add comment.
ada/
	* gcc-interface/trans.c (Loop_Statement_to_gnu): Set TREE_SIDE_EFFECTS
	on the conditional expression directly.


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