/cp
2013-11-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57734
	* pt.c (lookup_template_class_1): Handle alias template declarations
	of enumeration types.

/testsuite
2013-11-12  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57734
	* g++.dg/cpp0x/alias-decl-enum-1.C: New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204697 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-12  Martin Jambor  <mjambor@suse.cz>

	PR rtl-optimization/10474
	* ira.c (interesting_dest_for_shprep): New function.
	(split_live_ranges_for_shrink_wrap): Likewise.
	(find_moveable_pseudos): Move calculation of dominance info,
	df_analysios and the final anlyses to...
	(ira): ...here, call split_live_ranges_for_shrink_wrap.

testsuite/
	* gcc.dg/pr10474.c: New testcase.
	* gcc.dg/ira-shrinkwrap-prep-1.c: Likewise.
	* gcc.dg/ira-shrinkwrap-prep-2.c: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204698 138bc75d-0d04-0410-961f-82ee72b054a4
Properly handle AVX256 unaligned load and store

	PR target/59084
	* config/i386/i386.c (ix86_option_override_internal): Check
	X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL and
	X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL for
	MASK_AVX256_SPLIT_UNALIGNED_LOAD and
	MASK_AVX256_SPLIT_UNALIGNED_STORE.

	* config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
	Clear m_COREI7_AVX and update comments.
	(X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204700 138bc75d-0d04-0410-961f-82ee72b054a4
Turn on SEE unaligned load and store for Haswell

	PR target/59088
	* config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL):
	Set for m_HASWELL.
	(X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Set for m_HASWELL.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204701 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-12  Teresa Johnson  <tejohnson@google.com>
	    Jan Hubicka  <jh@suse.cz>

	* predict.c (drop_profile): New function.
	(handle_missing_profiles): Ditto.
	(counts_to_freqs): Don't overwrite estimated frequencies
	when function has no profile counts.
	* predict.h (handle_missing_profiles): Declare.
	* tree-inline.c (freqs_to_counts): New function.
	(copy_cfg_body): Invoke freqs_to_counts as needed.
	* tree-profile.c (tree_profiling): Invoke handle_missing_profiles.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204704 138bc75d-0d04-0410-961f-82ee72b054a4
	* gimple-ssa-isolate-paths.c (check_loadstore): New function.
	(insert_trap_and_remove_trailing_statements): New argument OP which
	is the NULL pointer.  Emit the trap after the load/store through
	the NULL pointer.  Simplify the RHS of a store through a NULL pointer
	when trivial to do so.
	(isolate_path): Corresponding changes.
	(gimple_ssa_isolate_erroneous_path): Likewise.

	* gcc.dg/tree-ssa/isolate-1.c: Update expected output.
	* gcc.dg/tree-ssa/isolate-5.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204708 138bc75d-0d04-0410-961f-82ee72b054a4
	* gnat.dg/aggr21.adb: New test.
	* gnat.dg/aggr21_pkg.ad[sb]: New helper.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204710 138bc75d-0d04-0410-961f-82ee72b054a4
c-family:
	* c-common.c (c_common_reswords): Add _Thread_local.

c:
	* c-tree.h (struct c_declspecs): Add thread_gnu_p field.
	* c-parser.c (c_parser_declspecs): Mention _Thread_local in
	comment.
	* c-decl.c (shadow_tag_warned, grokdeclarator): Mention __thread
	or _Thread_local as appropriate in diagnostics.
	(build_null_declspecs): Initialize ret->thread_gnu_p.
	(declspecs_add_scspec): Handle either __thread or _Thread_local
	for RID_THREAD.  Diagnose _Thread_local for pre-C11 standards if
	pedantic.  Do not disallow _Thread_local extern and _Thread_local
	static.

testsuite:
	* gcc.dg/c90-thread-local-1.c, gcc.dg/c99-thread-local-1.c,
	gcc.dg/c11-thread-local-1.c, gcc.dg/c11-thread-local-2.c: New
	tests.
	* gcc.dg/tls/diag-2.c, objc.dg/tls/diag-2.m: Update expected
	diagnostics.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204711 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-12  Marek Polacek  <polacek@redhat.com>

	* final.c (update_alignments): Initialize label to NULL_RTX.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204712 138bc75d-0d04-0410-961f-82ee72b054a4
	* cp-demangle.c (d_copy_templates): Cast result of malloc
	to (struct d_print_template *).
	(d_print_comp): Cast result of realloc to (struct d_saved scope *).



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204713 138bc75d-0d04-0410-961f-82ee72b054a4
Refactor implicit function template implementation and fix 58534, 58536, 58548, 58549 and 58637.

gcc/
	* tree.c (grow_tree_vec_stat): New function ...
	* tree.h (grow_tree_vec_stat) (grow_tree_vec): ... and its declaration
	and macro front-end.

gcc/cp/
	PR c++/58534
	PR c++/58536
	PR c++/58548
	PR c++/58549
	PR c++/58637
	* parser.h (struct cp_parser): New members implicit_template_parms,
	implicit_template_scope and auto_is_implicit_function_template_parm_p.
	* parser.c (add_implicit_template_parms): Refactor as ...
	(synthesize_implicit_template_parm): ... this to append a new template
	type parm to the current template parameter list (introducing a new list
	if necessary).  Removed push_deferring_access_checks.
	(finish_fully_implicit_template): Removed pop_deferring_access_checks.
	(cp_parser_new): Initialize new cp_parser members.
	(cp_parser_parameter_declaration_clause): Consider auto as implicit
	template parm when parsing a parameter declaration (unless parsing an
	explicit specialization).
	(cp_parser_parameter_declaration_list): Remove local
	implicit_template_parms counter and reset cp_parser implicit template
	state when complete.
	(cp_parser_lambda_expression): Reset implicit template cp_parser members
	whilst generating lambda class.
	(cp_parser_function_definition_after_declarator): Reset implicit
	template cp_parser members whilst parsing function definition.
	(make_generic_type_name): Respell '<autoN>' as 'auto:N' which works
	better with template diagnostics.
	(cp_parser_simple_type_specifier): Synthesize implicit template parm on
	parsing 'auto' if auto_is_implicit_function_template_parm_p and provide
	diagnostics ...
	* decl.c (grokdeclarator): ... that were previously done here.

gcc/testsuite/g++.dg/
	* cpp1y/pr58534.C: New testcase.
	* cpp1y/pr58536.C: New testcase.
	* cpp1y/pr58548.C: New testcase.
	* cpp1y/pr58549.C: New testcase.
	* cpp1y/pr58637.C: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204714 138bc75d-0d04-0410-961f-82ee72b054a4
Support implicit parameter packs.

	* pt.c (convert_generic_types_to_packs): New function to transform
	a range of implicitly introduced non-pack template parms to be parameter
	packs.
	* cp-tree.h (convert_generic_types_to_packs): Declare.
	* parser.c (cp_parser_parameter_declaration_list): If a function
	parameter pack contains generic types, convert them to packs prior to
	grokdeclarator.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204715 138bc75d-0d04-0410-961f-82ee72b054a4
Add some generic lambda test cases.

gcc/testsuite/g++.dg/cpp1y/
	* lambda-generic.C: New test case.
	* lambda-generic-cfun.C: New test case.
	* lambda-generic-dep.C: New test case.
	* lambda-generic-udt.C: New test case.
	* lambda-generic-variadic.C: New test case.
	* lambda-generic-x.C: New test case.
	* lambda-generic-xcfun.C: New test case.
	* lambda-generic-xudt.C: New test case.
	* lambda-generic-mixed.C: New test case.

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

2013-11-12  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-expr.h (create_tmp_var_name, create_tmp_var_raw,
	create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs):
	Relocate prototypes from gimple.h.
	* gimplify.h: New File.  Relocate some prototypes from gimple.h here.
	(gimple_predicate, enum fallback, enum gimplify_status): Relocate
	from gimple.h.
	* gimple.h: Move some prototypes to gimplify.h.
	(gimple_predicate, enum fallback, enum gimplify_status): Move to
	gimplify.h.
	(gimple_do_not_emit_location_p, gimple_set_do_not_emit_location):
	Relocate from gimpify.c.
	* gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name,
	create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable,
	is_gimple_reg_rhs) Relocate from gimplify.c.
	* gimplify.c (mark_addressable): Move to gimple-expr.c.
	(gimple_seq_add_stmt_without_update): Move to gimple.c.
	(remove_suffix, tmp_var_id_num, create_tmp_var_name, create_tmp_var_raw,
	create_tmp_var, create_tmp_reg, is_gimple_reg_rhs): Move to 
	gimple-expr.c.
	(should_carry_location_p): Move to gimple.c.
	(gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move
	to gimple.h.
	(annotate_one_with_location, annotate_all_with_location_after,
	annotate_all_with_location): Move to gimple.c.
	(compare_case_labels, sort_case_labels,
	preprocess_case_label_vec_for_gimple): Move to gimple.c.
	(rhs_predicate_for): Make static.
	(gimplify_assign): Relocate from gimple.c.
	* gimple.c (gimplify_assign): Move to gimplify.c.
	(gimple_seq_add_stmt_without_update, should_carry_location_p,
	annotate_one_with_location, annotate_all_with_location_after,
	annotate_all_with_location, compare_case_labels, sort_case_labels,
	preprocess_case_label_vec_for_gimple): Relocate from gimplify.c.
	* tree.h (unshare_expr, unshare_expr_without_location,
	mark_addressable): Move prototypes to gimplify.h.
	* Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for
	tmp_var_id_num
	* asan.c: Include gimplify.h rather than gimple.h.
	* cfgloopmanip.c: Likewise.
	* cgraphunit.c: Likewise.
	* cilk-common.c: Likewise.
	* dwarf2out.c: Dont include gimple.h.
	* fold-const.c: Include gimplify.h rather than gimple.h.
	* function.c: Likewise.
	* gimple-fold.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-split.c: Likewise.
	* ipa.c: Likewise.
	* langhooks.c: Dont include gimple.h.
	* loop-init.c: Include gimplify.h rather than gimple.h.
	* omp-low.c: Likewise.
	* sese.c: Likewise.
	* stor-layout.c: Likewise.
	* targhooks.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-iterator.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-sra.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-switch-conversio: Likewise.n.c
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tsan.c: Likewise.
	* value-prof.c: Likewise.
	* config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h.
	* config/alpha/alpha.c: Likewise.
	* config/darwin.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.

	* ada/gcc-interface/trans.c: Include gimplify.h.

	* c/c-typeck.c: Include gimplify.h.

	* c-family/c-common.c: Include gimplify.h.
	* c-family/c-gimplify.c: Likewise.
	* c-family/cilk.c: Likewise.
	* c-family/c-omp.c: Include gimple-expr.h instead of gimple.h.
	* c-family/c-ubsan.c: Don't include gimple.h.

	* cp/class.c: Include gimplify.h.
	* cp/cp-gimplify.c: Likewise.
	* cp/error.c: Likewise.
	* cp/init.c: Likewise.
	* cp/optimize.c: Likewise.
	* cp/pt.c: Likewise.
	* cp/semantics.c: Likewise.
	* cp/tree.c: Likewise.
	* cp/vtable-class-hierarchy.c: Likewise.
	* cp/decl2.c: Don't include gimple.h.
	* cp/except.c: Likewise.
	* cp/method.c: Include pointer-set.h instead of gimple.h.

	* fortran/f95-lang.c: Don't include gimple.h.
	* fortran/trans-array.c: Include gimple-expr.h instead of gimple.h.
	* fortran/trans.c: Likewise.
	* fortran/trans-decl.c: Likewise.
	* fortran/trans-expr.c: Include gimplify.h.
	* fortran/trans-openmp.c: Likewise.

	* go/go-lang.c: Include gimplify.h.

	* java/java-gimplify.c: Include gimplify.h.

	* objc/objc-act.c: Include gimplify.h.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204717 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59054
	* config/rs6000/rs6000.md (movdi_internal32): Eliminate
	constraints that would allow DImode into the traditional Altivec
	registers, but cause undesirable code generation when loading 0 as
	a constant.
	(movdi_internal64): Likewise.
	(cmp<mode>_fpr): Do not use %x for CR register output.
	(extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
	-mallow-upper-sf debug switches are used.

[gcc/testsuite]
2013-11-12  Michael Meissner  <meissner@linux.vnet.ibm.com>

	PR target/59054
	* gcc.target/powerpc/pr59054.c: New test.



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

	PR other/58712
	* ira-costs.c (record_operand_costs): Check operands number for
	the single set.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204720 138bc75d-0d04-0410-961f-82ee72b054a4
compiler: Update for mainline changes.

From Andrew MacLeod.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204721 138bc75d-0d04-0410-961f-82ee72b054a4
	* gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered
	memory references as volatile.
	(insert_trap_and_remove_trailing_statements): Fix comment.

	* gcc.dg/tree-ssa/isolate-1.c: Update expected output.
	* gcc.dg/tree-ssa/isolate-5.c: Verify the load survives through
	the SSA optimizers.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204722 138bc75d-0d04-0410-961f-82ee72b054a4
2013-11-12  Balaji V. Iyer  <balaji.v.iyer@intel.com>

        * Makefile.am (libcilkrts_la_LDFLAGS): Added a check for availability
        of "-ldl" flag.
        * configure.ac: Likewise.
        * configure: Regenerate
        * Makefile.in: Likewise.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204723 138bc75d-0d04-0410-961f-82ee72b054a4
	* tree-ssa-threadedge.c (thread_around_empty_blocks): New
	argument backedge_seen_p.  Set, use and pass it to children
	appropriately.
	(thread_through_normal_block): Similarly.
	(thread_across_edge): Similarly.

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