2014-09-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/62695
	* tree-ssa-structalias.c (find_func_clobbers): Add missing
	vector truncate.

	* gfortran.dg/pr62695.f90: New testcase.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214810 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (mulsi3, *mulsi3_internal1,
	*mulsi3_internal2, and two splitters): Delete.
	(muldi3, *muldi3_internal1, *muldi3_internal2, and two splitters):
	Delete.
	(mul<mode>3, mul<mode>3_dot, mul<mode>3_dot2): New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214813 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (any_extend): New code iterator.
	(u, su): New code attributes.
	(dmode, DMODE): New mode attributes.
	(<su>mul<mode>3_highpart): New.
	(*<su>mul<mode>3_highpart): New.
	(<su>mulsi3_highpart_le): New.
	(<su>muldi3_highpart_le): New.
	(<su>mulsi3_highpart_64): New.
	(<u>mul<mode><dmode>3): New.
	(mulsidi3, umulsidi3, smulsi3_highpart, umulsi3_highpart, and two
	splitters): Delete.
	(mulditi3, umulditi3, smuldi3_highpart, umuldi3_highpart, and two
	splitters): Delete.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214814 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (QHSI): Delete.
	(EXTQI, EXTHI, EXTSI): New mode iterators.
	(zero_extend<mode>di2, *zero_extend<mode>di2_internal1,
	*zero_extend<mode>di2_internal2, *zero_extend<mode>di2_internal3,
	*zero_extendsidi2_lfiwzx, zero_extendqisi2, zero_extendhisi2,
	9 anonymous instructions, and 8 splitters): Delete.
	(zero_extendqi<mode>2, *zero_extendqi<mode>2_dot,
	*zero_extendqi<mode>2_dot2, zero_extendhi<mode>2,
	*zero_extendhi<mode>2_dot, *zero_extendhi<mode>2_dot2,
	zero_extendsi<mode>2, *zero_extendsi<mode>2_dot,
	*zero_extendsi<mode>2_dot2): New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214815 138bc75d-0d04-0410-961f-82ee72b054a4
2014-09-02  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/40x.md (ppc403-integer): Move "exts" to "no dot".
	(ppc403-compare): Add "exts with dot" case.
	* config/rs6000/440.md (ppc440-integer, ppc440-compare): As above.
	* config/rs6000/476.md (ppc476-simple-integer, ppc476-compare): Ditto.
	* config/rs6000/601.md (ppc601-integer, ppc601-compare): Ditto.
	* config/rs6000/603.md (ppc603-integer, ppc603-compare): Ditto.
	* config/rs6000/6xx.md (ppc604-integer, ppc604-compare): Ditto.
	* config/rs6000/7450.md (ppc7450-integer, ppc7450-compare): Ditto.
	* config/rs6000/7xx.md (ppc750-integer, ppc750-compare): Ditto.
	* config/rs6000/cell.md (cell-integer, cell-fast-cmp,
	cell-cmp-microcoded): Similarly.
	* config/rs6000/e300c2c3.md (ppce300c3_iu, ppce300c3_cmp): As before.
	* config/rs6000/e500mc64.md (e500mc64_su, e500mc64_su2): Ditto.
	* config/rs6000/e5500.md (e5500_sfx, e5500_sfx2): Ditto.
	* config/rs6000/e6500.md (e6500_sfx, e6500_sfx2): Ditto.
	* config/rs6000/mpc.md (mpccore-integer, mpccore-compare): Ditto.
	* config/rs6000/power4.md (power4-integer, power4-compare): Ditto.
	* config/rs6000/power5.md (power5-integer, power5-compare): Ditto.
	* config/rs6000/power6.md (power6-exts): Add "no dot" condition.
	(power6-compare): Add "exts with dot" case.
	* config/rs6000/power7.md (power7-integer, power7-compare): As before.
	* config/rs6000/power8.md (power8-1cyc, power8-compare): Ditto.
	* config/rs6000/rs64.md (rs64a-integer, rs64a-compare): Ditto.

	* config/rs6000/predicates.md (lwa_operand): Don't allow memory
	if avoiding Cell microcode.
	* config/rs6000/rs6000.c (rs6000_adjust_cost): Handle exts+dot case.
	(is_cracked_insn): Ditto.
	(insn_must_be_first_in_group): Ditto.
	* config/rs6000/rs6000.md (dot): Adjust comment.
	(cell_micro): Handle exts+dot.
	(extendqidi2, extendhidi2, extendsidi2, *extendsidi2_lfiwax,
	*extendsidi2_nocell, *extendsidi2_nocell, extendqisi2, extendqihi2,
	extendhisi2, 16 anonymous instructions, and 12 splitters): Delete.
	(extendqi<mode>2, *extendqi<mode>2_dot, *extendqi<mode>2_dot2,
	extendhi<mode>2, *extendhi<mode>2, *extendhi<mode>2_noload,
	*extendhi<mode>2_dot, *extendhi<mode>2_dot2, extendsi<mode>2,
	*extendsi<mode>2_dot, *extendsi<mode>2_dot2): New.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214816 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/
	* cilk-builtins.def (__cilkrts_cilk_for_32): New.
	(__cilkrts_cilk_for_64): Likewise.
	* cilk-common.c (declare_cilk_for_builtin): New function.
	(cilk_init_builtins): Declare __cilkrts_cilk_for_32 and
	__cilkrts_cilk_for_64 bultins.
	* cilk.h (enum cilk_tree_index): Added CILK_TI_F_LOOP_32 and
	CILK_TI_F_LOOP_64.
	(cilk_for_32_fndecl): New define.
	(cilk_for_64_fndecl): Likewise.
	* gimple-pretty-print.c (dump_gimple_omp_for): Correct hadling of
	GF_OMP_FOR_KIND_CILKFOR cases; Added NE_EXPR case.
	* gimple.h (enum gf_mask): Added GF_OMP_FOR_KIND_CILKFOR; adjusted
	GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED,
	GF_OMP_FOR_COMBINED_INTO.
	* gimplify.c (gimplify_scan_omp_clauses): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ case.
	(gimplify_adjust_omp_clauses): Ditto.
	(gimplify_omp_for): Added CILK_FOR case.
	(gimplify_expr): Ditto.
	* omp-low.c: Include cilk.h.
	(extract_omp_for_data): Set appropriate kind for
	GF_OMP_FOR_KIND_CILKFOR; added check for GF_OMP_FOR_KIND_CILKFOR.
	(scan_sharing_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_ cases.
	(create_omp_child_function_name): Added second argument to handle
	cilk_for case.
	(cilk_for_check_loop_diff_type): New function.
	(expand_cilk_for_call): Likewise.
	(expand_cilk_for): Likewise.
	(create_omp_child_function): Set cilk_for_count; handle the cases when
	it is true; call create_omp_child_function_name with second argument.
	(expand_omp_taskreg): Set is_cilk_for and handle cases when it's true.
	(expand_omp_for): Handle case of GF_OMP_FOR_KIND_CILKFOR.
	* tree-core.h (omp_clause_code): Added OMP_CLAUSE__CILK_FOR_COUNT_.
	* tree-nested.c (convert_nonlocal_omp_clauses): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ case.
	(convert_local_omp_clauses): Ditto.
	* tree-pretty-print.c (dump_omp_clause): Added
	OMP_CLAUSE__CILK_FOR_COUNT_ and OMP_CLAUSE_SCHEDULE_CILKFOR cases.
	(dump_generic_node): Added CILK_FOR case.
	* tree.c (omp_clause_num_ops): New element
	OMP_CLAUSE__CILK_FOR_COUNT_ (1).
	(omp_clause_code_name): New element _Cilk_for_count_.
	(walk_tree_1): Added OMP_CLAUSE__CILK_FOR_COUNT_ case.
	* tree.def: Add tree code for CILK_FOR.

gcc/c/
	* c-parser.c (c_parser_cilk_for): New function.
	(c_parser_cilk_grainsize): Likewise.
	(c_get_temp_regvar): Likewise.
	(c_parser_statement_after_labels): Added RID_CILK_FOR case.
	(c_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
	(c_parser_omp_for_loop): Added CILK_FOR and CILK_SIMD checks.
	* c-typeck.c (c_finish_omp_clauses): Added OMP_CLAUSE__CILK_FOR_COUNT_
	case.

gcc/cp/
	* cp-cilkplus.c (cpp_validate_cilk_plus_loop_aux): Loc definition
	simplified.
	* parser.c (cp_parser_cilk_for): New function.
	(cp_parser_cilk_grainsize): Likewise.
	(cp_parser_statement): Added RID_CILK_FOR case.
	(cp_parser_omp_for_cond): Added CILK_FOR check.
	(cp_parser_omp_for_loop_init): Change function argument to accept
	tree_code instead just a bool flag; change the check to use that
	tree_code; check for initialization declaration in case of Cilk_for.
	(cp_parser_omp_for_loop): Added checks for CILK_FOR and RID_CILK_FOR;
	changed call to cp_parser_omp_for_loop_init according new arguments'
	list.
	(cp_parser_pragma): Added PRAGMA_CILK_GRAINSIZE case.
	* pt.c (tsubst_expr): Added CILK_FOR case.
	* semantics.c: Include convert.h.
	(finish_omp_clauses): Properly handle OMP_CLAUSE_SCHEDULE_CILKFOR
	case; added OMP_CLAUSE__CILK_FOR_COUNT_.
	(handle_omp_for_class_iterator): New argument lastp and its usage;
	added NE_EXPR case.
	(finish_omp_for): Changed call to handle_omp_for_class_iterator
	according new arguments' list; in case of Cilk_for save very first
	decl and create empty stmt_list block; use block to build correct
	statement tree.

gcc/c-family/
	* c-cilkplus.c (cilk_for_number_of_iterations): New function.
	* c-common.c (c_common_reswords): Added _Cilk_for.
	* c-common.h (enum rid): Added RID_CILK_FOR.
	(cilk_for_number_of_iterations): Add declaration.
	* c-omp.c (c_finish_omp_for): Added checks for CILK_SIMD and
	CILK_FOR.
	* c-pragma.c (init_pragma): Register "grainsize" pragma.
	* c-pragma.h (enum pragma_kind): Add PRAGMA_CILK_GRAINSIZE.

gcc/testsuite/
	* c-c++-common/cilk-plus/CK/cilk-fors.c: New test.
	* c-c++-common/cilk-plus/CK/cilk-for-2.c: New test.
	* c-c++-common/cilk-plus/CK/cilk-for-3.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_errors.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_grain.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_grain_errors.c: New test.
	* c-c++-common/cilk-plus/CK/cilk_for_ptr_iter.c: New test.
	* c-c++-common/cilk-plus/CK/nested_cilk_for.c: New test.
	* g++.dg/cilk-plus/CK/cf3.cc: New test.
	* g++.dg/cilk-plus/CK/cilk-for-tplt.cc: New test.
	* g++.dg/cilk-plus/CK/for1.cc: New test.
	* g++.dg/cilk-plus/CK/stl_iter.cc: New test.
	* g++.dg/cilk-plus/CK/stl_rev_iter.cc: New test.
	* g++.dg/cilk-plus/CK/stl_test.cc: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214818 138bc75d-0d04-0410-961f-82ee72b054a4
	* Makefile.in (TAGS): Handle constructs in common.opt, rtl.def,
	tree.def, and gimple.def

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

	DR 1453
	* class.c (check_field_decls): A class of literal type cannot have
	volatile non-static data members and base classes.
	(explain_non_literal_class): Update.

/testsuite
2014-09-02  Paolo Carlini  <paolo.carlini@oracle.com>

	DR 1453
	* g++.dg/cpp0x/constexpr-volatile.C: New.
	* g++.dg/ext/is_literal_type2.C: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214823 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Use CC_Z and CC_NZ with csinc and similar instructions.

	* config/aarch64/predicates.md (aarch64_comparison_operation):
	New special predicate.
	* config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
	aarch64_comparison_operation instead of matching an operator.
	Update operand numbers.
	(csinc3<mode>_insn): Likewise.
	(*csinv3<mode>_insn): Likewise.
	(*csneg3<mode>_insn): Likewise.
	(ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
	* config/aarch64/aarch64.c (aarch64_get_condition_code):
	Return -1 instead of aborting on invalid condition codes.
	(aarch64_print_operand): Update aarch64_get_condition_code callsites
	to assert that the returned condition code is valid.
	* config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214824 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM][1/2] Implement lceil, lfloor, lround optabs with new ARMv8-A instructions.
                                                                                                                                                                             
      PR target/62275
      * config/arm/iterators.md (FIXUORS): New code iterator.
      (VCVT): New int iterator.
      (su_optab): New code attribute.
      (su): Likewise.
      * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.

      PR target/62275
      * gcc.target/arm/lceil-vcvt_1.c: New test.
      * gcc.target/arm/lfloor-vcvt_1.c: Likewise.
      * gcc.target/arm/lround-vcvt_1.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214825 138bc75d-0d04-0410-961f-82ee72b054a4
[2/2] Vectorise lroundf, lfloorf, lceilf using the new ARMv8-A vcvt* instructions.

	PR target/62275
	* config/arm/neon.md
	(neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
	<v_cmp_result>): New pattern.
	* config/arm/iterators.md (NEON_VCVT): New int iterator.
	* config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
	vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
	vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
	* config/arm/arm.c (arm_builtin_vectorized_function): Handle
	BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.

	PR target/62275
	* gcc.target/arm/vect-lceilf_1.c: New test.
	* gcc.target/arm/vect-lfloorf_1.c: Likewise.
	* gcc.target/arm/vect-lroundf_1.c: Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214826 138bc75d-0d04-0410-961f-82ee72b054a4
	PR fortran/62270
	* interface.c (compare_parameter): Fix condition.
	* trans-expr.c (gfc_conv_procedure_call): Likewise.

	* gfortran.dg/pointer_intent_7.f90: Adjust dg-error.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214827 138bc75d-0d04-0410-961f-82ee72b054a4
	* g++.old-deja/g++.eh/badalloc1.C [!STACK_SIZE && !__FreeBSD__]
	[!__sun__ && !__hpux__] (arena_size): Scale according to
	target pointer size.


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

2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/rs6000-builtin.def (XVCVSXDDP_SCALE):  New
	built-in definition.
	(XVCVUXDDP_SCALE): Likewise.
	(XVCVDPSXDS_SCALE): Likewise.
	(XVCVDPUXDS_SCALE): Likewise.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins):  Add
	entries for VSX_BUILTIN_XVCVSXDDP_SCALE,
	VSX_BUILTIN_XVCVUXDDP_SCALE, VSX_BUILTIN_XVCVDPSXDS_SCALE, and
	VSX_BUILTIN_XVCVDPUXDS_SCALE.
	* config/rs6000/rs6000-protos.h (rs6000_scale_v2df): New
	prototype.
	* config/rs6000/rs6000.c (real.h): New include.
	(rs6000_scale_v2df): New function.
	* config/rs6000/vsx.md (UNSPEC_VSX_XVCVSXDDP): New unspec.
	(UNSPEC_VSX_XVCVUXDDP): Likewise.
	(UNSPEC_VSX_XVCVDPSXDS): Likewise.
	(UNSPEC_VSX_XVCVDPUXDS): Likewise.
	(vsx_xvcvsxddp_scale): New define_expand.
	(vsx_xvcvsxddp): New define_insn.
	(vsx_xvcvuxddp_scale): New define_expand.
	(vsx_xvcvuxddp): New define_insn.
	(vsx_xvcvdpsxds_scale): New define_expand.
	(vsx_xvcvdpsxds): New define_insn.
	(vsx_xvcvdpuxds_scale): New define_expand.
	(vsx_xvcvdpuxds): New define_insn.
	* doc/extend.texi (vec_ctf): Add new prototypes.
	(vec_cts): Likewise.
	(vec_ctu): Likewise.
	(vec_splat): Likewise.
	(vec_div): Likewise.
	(vec_mul): Likewise.

[gcc/testsuite]

2014-09-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/builtins-1.c: Add tests for vec_ctf,
	vec_cts, and vec_ctu.
	* gcc.target/powerpc/builtins-2.c: Likewise.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214831 138bc75d-0d04-0410-961f-82ee72b054a4
support ggc hash_map  and hash_set

gcc/ChangeLog:

	* alloc-pool.c: Include coretypes.h.
	* cgraph.h, dbxout.c, dwarf2out.c, except.c, except.h, function.c,
	function.h, symtab.c, tree-cfg.c, tree-eh.c: Use hash_map and
	hash_set instead of htab.
	* ggc-page.c (in_gc): New variable.
	(ggc_free): Do nothing if a collection is taking place.
	(ggc_collect): Set in_gc appropriately.
	* ggc.h (gt_ggc_mx(const char *)): New function.
	(gt_pch_nx(const char *)): Likewise.
	(gt_ggc_mx(int)): Likewise.
	(gt_pch_nx(int)): Likewise.
	* hash-map.h (hash_map::hash_entry::ggc_mx): Likewise.
	(hash_map::hash_entry::pch_nx): Likewise.
	(hash_map::hash_entry::pch_nx_helper): Likewise.
(hash_map::hash_map): Adjust.
(hash_map::create_ggc): New function.
(gt_ggc_mx): Likewise.
(gt_pch_nx): Likewise.
	* hash-set.h (default_hashset_traits::ggc_mx): Likewise.
(default_hashset_traits::pch_nx): Likewise.
(hash_set::hash_entry::ggc_mx): Likewise.
(hash_set::hash_entry::pch_nx): Likewise.
(hash_set::hash_entry::pch_nx_helper): Likewise.
(hash_set::hash_set): Adjust.
(hash_set::create_ggc): New function.
(hash_set::elements): Likewise.
(gt_ggc_mx): Likewise.
(gt_pch_nx): Likewise.
	* hash-table.h (hash_table::hash_table): Adjust.
(hash_table::m_ggc): New member.
	(hash_table::~hash_table): Adjust.
	(hash_table::expand): Likewise.
	(hash_table::empty): Likewise.
(gt_ggc_mx): New function.
	(hashtab_entry_note_pointers): Likewise.
(gt_pch_nx): Likewise.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214839 138bc75d-0d04-0410-961f-82ee72b054a4
	* libgcov-interface.c (STRONG_ALIAS): New.
	(__gcov_flush): Call __gcov_reset_int.
	(__gcov_reset): Strong alias for ...
	(__gcov_reset_ing): ... this renamed hidden version.
	* libgcov.h (__gcov_reset_int): New declaration.


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

gcc/

	* asan.c, cfgexpand.c, config/alpha/alpha.md, config/arm/arm.c,
	config/epiphany/epiphany.md, config/h8300/h8300.c, config/i386/i386.md,
	config/m32r/m32r.c, config/mcore/mcore.md, config/mips/mips.c,
	config/mips/mips.md, config/nios2/nios2.c, config/pa/pa.c,
	config/s390/s390.c, config/s390/s390.md, config/sh/sh-mem.cc,
	config/sh/sh.c, config/sparc/sparc.c, dojump.c, function.c, optabs.c,
	stmt.c: Assign the result of gen_label_rtx to rtx_code_label * instead
	of rtx.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214841 138bc75d-0d04-0410-961f-82ee72b054a4
use rtx_code_label in lab_rtx_for_bb hash map

gcc/ChangeLog:

	* cfgexpand.c (label_rtx_for_bb): Change type to
	hash_map<basic_block, rtx_code_label *> *.
	(expand_gimple_basic_block): Adjust.
	(pass_expand::execute): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@214842 138bc75d-0d04-0410-961f-82ee72b054a4
[Patch, microblaze]: Add optimized lshrsi3

When barrel shifter is not present, the immediate value
is greater than #5 and optimization is -OS, the
compiler will generate shift operation using loop.

Changelog

2013-11-26  David Holsgrove <david.holsgrove@xilinx.com>

 * gcc/config/microblaze/microblaze.md: Add size optimized lshrsi3 insn

ChangeLog/testsuite

2014-02-12  David Holsgrove <david.holsgrove@xilinx.com>

 * gcc/testsuite/gcc.target/microblaze/others/lshrsi_Os_1.c: New test.

Signed-off-by:Nagaraju <nmekala@xilix.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>