2014-04-14  Richard Biener  <rguenther@suse.de>

	* tree-switch-conversion.c (lshift_cheap_p): Get speed_p
	as argument.
	(expand_switch_using_bit_tests_p): Likewise.
	(process_switch): Compute and pass on speed_p based on the
	switch stmt.
	* tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
	optimize_bb_for_speed_p.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209364 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-14  Richard Biener  <rguenther@suse.de>
	Marc Glisse  <marc.glisse@inria.fr>

	PR c/60819
	c-family/
	* c-common.c (convert_vector_to_pointer_for_subscript): Properly
	apply may-alias the scalar pointer type when applicable.

	* gcc.target/i386/vec-may_alias.c: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209365 138bc75d-0d04-0410-961f-82ee72b054a4
Skip gcc.dg/lto/pr55113 on Solaris 10+/x86

	* gcc.dg/lto/pr55113_0.c: Skip on i?86-*-solaris2.1[0-1]*.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209367 138bc75d-0d04-0410-961f-82ee72b054a4
	* stor-layout.c (place_field): Finalize non-constant offset for the
	field, if any.
ada/
	* gcc-interface/decl.c (create_field_decl_from): Finalize non-constant
	offset for the field, if any.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209369 138bc75d-0d04-0410-961f-82ee72b054a4
	* opt.ads (Suppress_Back_Annotation): Remove as unused.
	* fe.h (Back_Annotate_Rep_Info): Likewise.
	(Global_Discard_Names): Likewise.
	(List_Representation_Info): Declare.
	* types.h (Uint_Minus_1): Likewise.
	* repinfo.ads: Document back-annotation change.
	* gcc-interface/gigi.h (init_gnat_decl): Declare.
	(destroy_gnat_decl): Likewise.
	* gcc-interface/decl.c (annotate_value): Do not create the cache of
	annotated values here but...
	<CALL_EXPR>: Only inline the call if -gnatR3 is specified or we are
	in ASIS mode.
	(init_gnat_decl): ...here instead.  New function.
	(destroy_gnat_decl): Likewise.
	* gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_decl.
	* gcc-interface/utils.c (init_gnat_utils): Minor reformatting.


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

	* tree-ssa-forwprop.c (simplify_gimple_switch): Enhance
	check for which sign-changes we allow when forwarding
	a converted value into a switch.

	* g++.dg/tree-ssa/forwprop-switch.C: New testcase.


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

	* passes.def: Move early points-to after early SRA.


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

	PR tree-optimization/60042
	* tree-ssa-pre.c (inhibit_phi_insertion): Remove.
	(insert_into_preds_of_block): Do not prevent PHI insertion
	for REFERENCE exprs here ...
	(eliminate_dom_walker::before_dom_children): ... but prevent
	their use here under similar conditions when applied to the
	IL after PRE optimizations.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209374 138bc75d-0d04-0410-961f-82ee72b054a4
	* snames.ads-tmpl (Name_Ivdep): New pragma-related name.
	* sem_prag.adb (Analyze_Pragma) <Pragma_Loop_Optimize>: Add support
	for Ivdep hint.
	* gnat_rm.texi (Implementation Defined Pragmas): Document new Ivdep
	hint for Loop_Optimize.
	* gnat_ugn.texi (Vectorization of loops): Mention new Ivdep hint.
	* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal
	with new Ivdep hint.
	* gcc-interface/ada-tree.h (LOOP_STMT_IVDEP): New macro.
	* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal
	with new Ivdep hint.
	(gnat_gimplify_stmt) <LOOP_STMT>: Propagate the loop hints.


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

	* doc/invoke.texi (free): Document AArch64.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209376 138bc75d-0d04-0410-961f-82ee72b054a4
Limit operations on vector::pointer to NullablePointer requirements.

	* include/bits/stl_vector.h (_Vector_base::_Vector_impl,
	_Vector_base::_M_allocate): NullablePointer requirements do not
	include initialization from literal zero, use value-initialization.
	* include/bits/vector.tcc (vector::_M_insert_aux,
	vector::_M_explace_back_aux): Likewise for assignment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209377 138bc75d-0d04-0410-961f-82ee72b054a4
	* include/bits/allocator.h (operator==, operator!=): Add exception
	specifications.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209379 138bc75d-0d04-0410-961f-82ee72b054a4
	PR libstdc++/60497
	* include/std/tuple (get): Qualify calls to prevent ADL.
	* testsuite/20_util/tuple/60497.cc: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209381 138bc75d-0d04-0410-961f-82ee72b054a4
Check optimize_insn_for_speed_p in *fixuns_trunc<mode>_1

Since fixuns_trunc<mode>si2 expander checks optimize_insn_for_size_p
before generating *fixuns_trunc<mode>_1,  we should use
optimize_insn_for_speed_p in *fixuns_trunc<mode>_1 for consistency.

	PR target/60827
	* config/i386/i386.md (*fixuns_trunc<mode>_1): Check
	optimize_insn_for_speed_p instead of
	optimize_function_for_speed_p.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209383 138bc75d-0d04-0410-961f-82ee72b054a4
Revert the last change on *fixuns_trunc<mode>_1

	PR target/60827
	* config/i386/i386.md (*fixuns_trunc<mode>_1): Revert the last
	change.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209385 138bc75d-0d04-0410-961f-82ee72b054a4
2014-04-14  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (ipa_sra_preliminary_function_checks): Skip
	DECL_DISREGARD_INLINE_LIMITS functions.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209386 138bc75d-0d04-0410-961f-82ee72b054a4
	* ipa-utils.c (ipa_merge_profiles): Merge profile_id.
	* coverage.c (coverage_compute_profile_id): Handle externally visible
	symbols.

	* lto/lto-symtab.c (lto_cgraph_replace_node): Don't re-merge
	tp_first_run.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209387 138bc75d-0d04-0410-961f-82ee72b054a4
	* config/i386/i386.c (examine_argument): Return bool.  Return true if
	parameter should be passed in memory.
	<case X86_64_COMPLEX_X87_CLASS>: Adjust.
	(construct_container): Update calls to examine_argument.
	(function_arg_advance_64): Ditto.
	(return_in_memory_32): Merge with ix86_return_in_memory.
	(return_in_memory_64): Ditto.
	(return_in_memory_ms_64): Ditto.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209388 138bc75d-0d04-0410-961f-82ee72b054a4
	PR lto/60820
	* varpool.c (varpool_remove_node): Do not alter decls when streaming.


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

	* tree.h (TYPE_IDENTIFIER): Declare.
	* tree.c (subrange_type_for_debug_p): Use it.
	* godump.c (go_format_type): Likewise.
	* dwarf2out.c (is_cxx_auto, modified_type_die,
	gen_type_die_with_usage, gen_type_die_with_usage): Likewise.
	* dbxout.c (dbxout_type, dbxout_symbol): Likewise.

/cp
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* cp-tree.h (TYPE_IDENTIFIER): Remove declaration.
      	    
/objcp
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* objcp-decl.h (OBJC_TYPE_NAME, OBJC_SET_TYPE_NAME): Use
	TYPE_IDENTIFIER.

/ada
2014-04-14  Paolo Carlini  <paolo.carlini@oracle.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity, components_to_record):
	Use TYPE_IDENTIFIER.
	* gcc-interface/utils.c (make_aligning_type, maybe_pad_type,
	finish_record_type, rest_of_record_type_compilation): Likewise.


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