Commit Graph

126443 Commits

Author SHA1 Message Date
Christophe Lyon 6991c9774a aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
2013-11-13  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
	* config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
	Update offset calculations.

From-SVN: r204737
2013-11-13 11:11:00 +01:00
Eric Botcazou bed36869f0 re PR ada/35998 (debug info invalid x86_64 DW_AT_byte_size 0xffffffff)
PR ada/35998
	* dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes
	for fields.  Do not add the attribute if the size is negative.

From-SVN: r204736
2013-11-13 10:07:14 +00:00
Kyrylo Tkachov f819a56dc7 arm.c: Include aarch-cost-tables.h.
* config/arm/arm.c: Include aarch-cost-tables.h.
	(generic_extra_costs): Move from here...
	* config/arm/aarch-cost-tables.h: ... To here.  New file.

From-SVN: r204735
2013-11-13 09:45:20 +00:00
Alexander Ivchenko 47490470c6 i386.c (ix86_print_operand): Support z-masking.
* config/i386/i386.c (ix86_print_operand): Support z-masking.
	* config/i386/predicate.md (const_0_to_4_operand): New.
	(const_0_to_5_operand): Ditto.
	* config/i386/sse.md (UNSPEC_COMPRESS): New.
	(UNSPEC_COMPRESS_STORE): Ditto.
	(UNSPEC_EXPAND): Ditto.
	(UNSPEC_EMBEDDED_ROUNDING): Ditto.
	(define_mode_attr ssescalarsize): Ditto.
	(avx512f_load<mode>_mask): Ditto.
	(avx512f_store<mode>_mask): Ditto.
	(avx512f_storedqu<mode>_mask): Ditto.
	(avx512f_vmcmp<mode>3_mask): Ditto.
	(avx512f_fmadd_<mode>_mask): Ditto.
	(avx512f_fmadd_<mode>_mask3): Ditto.
	(avx512f_fmsub_<mode>_mask): Ditto.
	(avx512f_fmsub_<mode>_mask3): Ditto.
	(avx512f_fnmadd_<mode>_mask): Ditto.
	(avx512f_fnmadd_<mode>_mask3): Ditto.
	(avx512f_fnmsub_<mode>_mask): Ditto.
	(avx512f_fnmsub_<mode>_mask3): Ditto.
	(avx512f_fmaddsub_<mode>_mask): Ditto.
	(avx512f_fmaddsub_<mode>_mask3): Ditto.
	(avx512f_fmsubadd_<mode>_mask): Ditto.
	(avx512f_fmsubadd_<mode>_mask3): Ditto.
	(vec_unpacku_float_lo_v16si): Ditto.
	(avx512f_vextract<shuffletype>32x4_mask): Ditto.
	(avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
	(avx512f_vextract<shuffletype>64x4_mask): Ditto.
	(vec_extract_lo_<mode>_maskm): Ditto.
	(vec_extract_hi_<mode>_maskm): Ditto.
	(avx512f_vternlog<mode>_mask): Ditto.
	(avx512f_shufps512_mask): Ditto.
	(avx512f_fixupimm<mode>_mask): Ditto.
	(avx512f_shufpd512_mask): Ditto.
	(avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
	(avx512f_<code>v8div16qi2_mask/trunc): Ditto.
	(*avx512f_<code>v8div16qi2_store_mask): Ditto.
	(ashr<mode>3<mask_name>): Ditto.
	(avx512f_vinsert<shuffletype>32x4_mask): Ditto.
	(avx512f_vinsert<shuffletype>64x4_mask): Ditto.
	(avx512f_shuf_<shuffletype>64x2_mask): Ditto.
	(avx512f_shuf_<shuffletype>32x4_mask): Ditto.
	(avx512f_pshufdv3_mask): Ditto.
	(avx512f_perm<mode>_mask): Ditto.
	(avx512f_vpermi2var<mode>3_mask): Ditto.
	(avx512f_vpermt2var<mode>3_mask): Ditto.
	(avx512f_compress<mode>_mask): Ditto.
	(avx512f_compressstore<mode>_mask): Ditto.
	(avx512f_expand<mode>_mask): Ditto.
	(<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Extend
	to support masking.
	(avx512f_storeu<ssemodesuffix>512_mask): Ditto.
	(<plusminus_insn><mode>3<mask_name>): Ditto.
	(*<plusminus_insn><mode>3<mask_name>): Ditto.
	(mul<mode>3<mask_name>): Ditto.
	(*mul<mode>3<mask_name>): Ditto.
	(<sse>_div<mode>3<mask_name>): Ditto.
	(<mask_codefor>rcp14<mode><mask_name>): Ditto.
	(<sse>_sqrt<mode>2<mask_name>): Ditto.
	(<mask_codefor>rsqrt14<mode><mask_name>): Ditto.
	(<code><mode>3<mask_name>/smaxmin): Ditto.
	(*<code><mode>3_finite<mask_name>/smaxmin): Ditto.
	(*<code><mode>3<mask_name>/smaxmin): Ditto.
	(float<sseintvecmodelower><mode>2<mask_name>): Ditto.
	(ufloatv16siv16sf2<mask_name>): Ditto.
	(<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto.
	(<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto.
	(<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto.
	(float<si2dfmodelower><mode>2<mask_name>): Ditto.
	(ufloatv8siv8df<mask_name>): Ditto.
	(<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto.
	(avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto.
	(<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto.
	(<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto.
	(<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto.
	(<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
	(<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
	(<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
	(<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
	(<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
	(vec_extract_lo_<mode><mask_name>): Ditto.
	(vec_extract_hi_<mode><mask_name>): Ditto.
	(<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
	(avx512f_movddup512<mask_name>): Ditto.
	(avx512f_unpcklpd512<mask_name>): Ditto.
	(*avx512f_unpcklpd512<mask_name>): Ditto.
	(*avx512f_vmscalef<mode>): Ditto.
	(avx512f_scalef<mode><mask_name>): Ditto.
	(avx512f_getexp<mode><mask_name>): Ditto.
	(<mask_codefor>avx512f_align<mode><mask_name>): Ditto.
	(avx512f_rndscale<mode><mask_name>): Ditto.
	(avx512f_shufps512_1<mask_name>): Ditto.
	(avx512f_shufpd512_1<mask_name>): Ditto.
	(<plusminus_insn><mode>3<mask_name>): Ditto.
	(*<plusminus_insn><mode>3<mask_name>): Ditto.
	(vec_widen_umult_even_v16si<mask_name>): Ditto.
	(*vec_widen_umult_even_v16si<mask_name>): Ditto.
	(vec_widen_smult_even_v16si<mask_name>): Ditto.
	(*vec_widen_smult_even_v16si<mask_name>): Ditto.
	(mul<mode>3<mask_name>): Ditto.
	(*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
	(<shift_insn><mode>3<mask_name>): Ditto.
	(avx512f_<rotate>v<mode><mask_name>/rotate): Ditto.
	(avx512f_<rotate><mode><mask_name>): Ditto.
	(<code><mode>3<mask_name>/maxmin): Ditto.
	(*avx2_<code><mode>3<mask_name>/maxmin): Ditto.
	(<sse2_avx2>_andnot<mode>3<mask_name>): Ditto.
	(*andnot<mode>3<mask_name>): Ditto.
	(<mask_codefor><code><mode>3<mask_name>/any_logic): Ditto.
	(<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
	(<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
	(<mask_codefor>avx512f_vinsert<shuffletype>32x4_1<mask_name>): Ditto.
	(vec_set_lo_<mode><mask_name>): Ditto.
	(vec_set_hi_<mode><mask_name>): Ditto.
	(avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
	(avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
	(avx512f_pshufd_1<mask_name>): Ditto.
	(<mask_codefor>abs<mode>2<mask_name>): Ditto.
	(<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
	(avx512f_<code>v16hiv16si2<mask_name>/any_extend): Ditto.
	(avx512f_<code>v8qiv8di2<mask_name>/any_extend): Ditto.
	(avx512f_<code>v8hiv8di2<mask_name>/any_extend): Ditto.
	(avx512f_<code>v8siv8di2<mask_name>/any_extend): Ditto.
	(avx512er_exp2<mode><mask_name>): Ditto.
	(<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto.
	(<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto.
	(<avx2_avx512f>_permvar<mode><mask_name>): Ditto.
	(<avx2_avx512f>_perm<mode>_1<mask_name>): Ditto.
	(<mask_codefor>avx512f_vec_dup<mode><mask_name>): Ditto.
	(<mask_codefor>avx512f_broadcast<mode><mask_name>/V16FI): Ditto.
	(<mask_codefor>avx512f_broadcast<mode><mask_name>/V8FI): Ditto.
	(<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>): Ditto.
	(<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>): Ditto.
	(<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF2): Ditto.
	(<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF1): Ditto.
	(*<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
	(<sse2_avx_avx512f>_vpermilvar<mode>3<mask_name>): Ditto.
	(<avx2_avx512f>_ashrv<mode><mask_name>): Ditto.
	(<avx2_avx512f>_<shift_insn>v<mode><mask_name>): Ditto.
	(<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto.
	(<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
	(avx512f_getmant<mode><mask_name>): Ditto.
	(clz<mode>2<mask_name>): Ditto.
	(<mask_codefor>conflict<mode><mask_name>): Ditto.
	(*srcp14<mode>): Remove visibility.
	(*rsqrt14<mode>): Ditto.
	(*fma_fmsub_<mode>): Ditto.
	(*fma_fnmadd_<mode>): Ditto.
	(*avx512f_rndscale<mode>): Ditto.
	* config/i386/subst.md: New file.


Co-Authored-By: Andrey Turetskiy <andrey.turetskiy@intel.com>
Co-Authored-By: Anna Tikhonova <anna.tikhonova@intel.com>
Co-Authored-By: Ilya Tocar <ilya.tocar@intel.com>
Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com>
Co-Authored-By: Kirill Yukhin <kirill.yukhin@intel.com>
Co-Authored-By: Maxim Kuznetsov <maxim.kuznetsov@intel.com>
Co-Authored-By: Michael Zolotukhin <michael.v.zolotukhin@intel.com>
Co-Authored-By: Sergey Lega <sergey.s.lega@intel.com>

From-SVN: r204734
2013-11-13 08:21:57 +00:00
Joseph Myers 34eebd2a99 * gcc.dg/c11-complex-1.c: New test.
From-SVN: r204732
2013-11-13 00:43:03 +00:00
Joseph Myers 38b7bc7fc6 extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
* doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
	* ginclude/stdatomic.h (kill_dependency, atomic_store_explicit)
	(atomic_load_explicit, atomic_exchange_explicit)
	(atomic_compare_exchange_strong_explicit)
	(atomic_compare_exchange_weak_explicit): Use __auto_type to
	declare variable initialized with PTR argument.

c-family:
	* c-common.h (enum rid): Add RID_AUTO_TYPE.
	* c-common.c (c_common_reswords): Add __auto_type.
	(keyword_begins_type_specifier): Handle RID_AUTO_TYPE.

c:
	* c-tree.h (c_typespec_keyword): Add cts_auto_type.
	* c-decl.c (declspecs_add_type, finish_declspecs): Handle
	__auto_type.
	* c-parser.c (c_token_starts_typename, c_token_starts_declspecs)
	(c_parser_attribute_any_word, c_parser_objc_selector): Handle
	RID_AUTO_TYPE.
	(c_parser_declspecs): Take argument AUTO_TYPE_OK.
	(c_parser_declaration_or_fndef, c_parser_struct_declaration)
	(c_parser_declarator, c_parser_direct_declarator_inner)
	(c_parser_parameter_declaration, c_parser_type_name): All callers
	changed.
	(c_parser_declaration_or_fndef): Handle declarations with type
	determined from the initializer.

testsuite:
	* gcc.dg/atomic/stdatomic-vm.c, gcc.dg/auto-type-1.c,
	gcc.dg/auto-type-2.c: New tests.

From-SVN: r204731
2013-11-13 00:38:49 +00:00
Rong Xu d6d3f03341 The patch re-factors libgcov.c to make it better modulelized.
2013-11-12  Rong Xu  <xur@google.com>

The patch re-factors libgcov.c to make it better modulelized.
It contains two pieces of work:
1. break gcov_exit() into the following structure:
   gcov_exit()
      --> gcov_exit_compute_summary()
      --> allocate_filename_struct()
          for gi_ptr in gcov_list
            --> gcov_exit_dump_gcov()
                   --> gcov_exit_open_gcda_file()
                   --> gcov_exit_merge_gcda ()
                   --> gcov_exit_merge_summary ()
                   --> gcov_exit_write_gcda ()
2. split libgcov.c into the following files:
     libgcov-profiler.c
     libgcov-merge.c
     libgcov-interface.c
     libgcov-driver.c
       libgcov-driver-system.c (source included into libgcov-driver.c)

	* libgcc/libgcov.c: Delete as part of re-factoring.
	* gcc/gcov-io.h (__gcov_indirect_call_profiler): Add the decl to
        avoid warning.
	* libgcc/libgcov-interface.c (init_mx): Moved from libgcov.c.
	(init_mx_once): Ditto.
	(__gcov_flush): Ditto.
	(__gcov_reset): Ditto.
	(__gcov_dump): Ditto.
	(__gcov_fork): Ditto.
	(__gcov_execl): Ditto.
	(__gcov_execlp): Ditto.
	(__gcov_execle): Ditto.
	(__gcov_execv): Ditto.
	(__gcov_execvp): Ditto.
	(__gcov_execve): Ditto.
        * libgcc/libgcov-merge.c (__gcov_merge_time_profile): Moved from
        libgcov.c.
	(__gcov_merge_add): Ditto.
	(__gcov_merge_ior): Ditto.
	(__gcov_merge_single): Ditto.
	(__gcov_merge_delta): Ditto.
	* libgcc/libgcov-profiler.c 
	(__gcov_interval_profiler): Ditto.
	(__gcov_pow2_profiler): Ditto.
	(__gcov_one_value_profiler_body): Ditto.
	(__gcov_one_value_profiler): Ditto.
	(__gcov_indirect_call_profiler): Ditto.
	(__gcov_indirect_call_profiler_v2): Ditto.
	(__gcov_time_profiler): Ditto.
	(__gcov_average_profiler): Ditto.
	(__gcov_ior_profiler): Ditto.
	* libgcc/libgcov-driver.c (set_gcov_list): New.
	(get_gcov_dump_complete): Ditto.
	(set_gcov_dump_complete):Ditto.
	(reset_gcov_dump_complete):Ditto.
	(gcov_exit_compute_summary): New function split from gcov_exit().
	(gcov_exit_merge_gcda): Ditto.
	(gcov_exit_write_gcda): Ditto.
	(gcov_exit_merge_summary): Ditto.
	(gcov_exit_dump_gcov): Ditto.
	(struct gcov_fn_buffer): Moved from libgcov.c
	(struct gcov_summary_buffer): Ditto.
	(free_fn_data): Ditto.
	(buffer_fn_data): Ditto.
	(crc32_unsigned): Ditto.
	(gcov_version): Ditto.
	(gcov_histogram_insert): Ditto.
	(gcov_compute_histogram): Ditto.
	(gcov_exit): Ditto.
	(gcov_clear): Ditto.
	(__gcov_init): Ditto.
        (this_prg): Make it file scope static variable.
        (all_prg): Ditto.
        (crc32): Ditto.
        (gi_filename): Ditto.
        (fn_buffer): Ditto.
        (sum_buffer): Ditto.
        (struct gcov_filename_aux): New types to store auxiliary information
        for gi_filename.
	* libgcc/libgcov-driver-system.c (gcov_error): New utility function.
	(allocate_filename_struct): New function split from gcov_exit().
	(gcov_exit_open_gcda_file): Ditto.
	(create_file_directory): Moved from libgcov.c
	* libgcc/Makefile.in: Change to build newly added files.

From-SVN: r204730
2013-11-13 00:24:49 +00:00
GCC Administrator ef61907f9c Daily bump.
From-SVN: r204729
2013-11-13 00:17:16 +00:00
Jakub Jelinek d00106f4f0 sanitizer_platform_limits_linux.cc: Temporarily ifdef out almost the whole source.
* sanitizer_common/sanitizer_platform_limits_linux.cc: Temporarily
	ifdef out almost the whole source.
	* sanitizer_common/sanitizer_common_syscalls.inc: Likewise.

From-SVN: r204726
2013-11-13 00:42:55 +01:00
Balaji V. Iyer 9dbdea6b2a +2013-11-12 Balaji V.
+2013-11-12  Balaji V. Iyer  <balaji.v.iyer@intel.com>
+
+       * gcc.dg/cilk-plus/cilk-plus.exp: Added a check for LTO before running
+       LTO tests.
+

From-SVN: r204725
2013-11-12 15:17:26 -08:00
Jeff Law 3eae202fc7 tree-ssa-threadedge.c (thread_around_empty_blocks): New argument backedge_seen_p.
* 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.

From-SVN: r204724
2013-11-12 16:15:13 -07:00
Balaji V. Iyer f8ae0b2ac5 Makefile.am (libcilkrts_la_LDFLAGS): Added a check for availability of "-ldl" flag.
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.

From-SVN: r204723
2013-11-12 15:13:13 -08:00
Jeff Law 115d185182 gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered memory references as volatile.
* 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.

From-SVN: r204722
2013-11-12 16:09:09 -07:00
Ian Lance Taylor 6e022c863a compiler: Update for mainline changes.
From Andrew MacLeod.

From-SVN: r204721
2013-11-12 22:44:15 +00:00
Vladimir Makarov 8eb2533ac6 re PR other/58712 (issues found by --enable-checking=valgrind)
2013-11-12  Vladimir Makarov  <vmakarov@redhat.com>

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

From-SVN: r204720
2013-11-12 21:33:06 +00:00
Michael Meissner 7f6ada80ce re PR target/59054 (Powerpc -O0 -mcpu=power7 generates sub-optimal code to load 0)
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.

From-SVN: r204718
2013-11-12 20:55:58 +00:00
Andrew MacLeod 45b0be94be gimple-expr.h (create_tmp_var_name, [...]): Relocate prototypes from gimple.h.
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.

From-SVN: r204717
2013-11-12 20:26:43 +00:00
Adam Butcher c9a584aa7a 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.

From-SVN: r204716
2013-11-12 20:17:54 +00:00
Adam Butcher 91f1c20826 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.

From-SVN: r204715
2013-11-12 20:17:44 +00:00
Adam Butcher 0dca5025f0 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.

From-SVN: r204714
2013-11-12 20:17:33 +00:00
Uros Bizjak 27297d2d1b cp-demangle.c (d_copy_templates): Cast result of malloc to (struct d_print_template *).
* 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 *).

From-SVN: r204713
2013-11-12 21:02:21 +01:00
Marek Polacek 33fd569938 final.c (update_alignments): Initialize label to NULL_RTX.
2013-11-12  Marek Polacek  <polacek@redhat.com>

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

From-SVN: r204712
2013-11-12 17:56:48 +00:00
Joseph Myers 582d9b50ed c-common.c (c_common_reswords): Add _Thread_local.
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.

From-SVN: r204711
2013-11-12 17:38:47 +00:00
Tristan Gingold e9dc054758 aggr21.adb: New test.
* gnat.dg/aggr21.adb: New test.
	* gnat.dg/aggr21_pkg.ad[sb]: New helper.

From-SVN: r204710
2013-11-12 17:34:16 +00:00
Jeff Law 6ab7a3d7c4 gimple-ssa-isolate-paths.c (check_loadstore): New function.
* 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.

From-SVN: r204708
2013-11-12 09:41:51 -07:00
Teresa Johnson eb4b92c13b predict.c (drop_profile): New function.
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.

Co-Authored-By: Jan Hubicka <jh@suse.cz>

From-SVN: r204704
2013-11-12 15:03:28 +00:00
H.J. Lu a720b48e18 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.

From-SVN: r204701
2013-11-12 05:52:08 -08:00
H.J. Lu cd3c1b1c70 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.

From-SVN: r204700
2013-11-12 05:26:51 -08:00
Martin Jambor 732dad8f32 re PR rtl-optimization/10474 (shrink wrapping for functions)
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.

From-SVN: r204698
2013-11-12 13:53:53 +01:00
Paolo Carlini e4c04ff0e8 re PR c++/57734 (Returning template alias to enum class fails with "invalid declarator")
/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.

From-SVN: r204697
2013-11-12 09:21:45 +00:00
Bin Cheng 801a661c44 tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code.
* tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code.
	Handle type conversion.

From-SVN: r204695
2013-11-12 06:42:05 +00:00
GCC Administrator 97a23b7475 Daily bump.
From-SVN: r204693
2013-11-12 00:17:00 +00:00
Martin Liska 86ce5d2fc1 Time profiler introduced.
Co-Authored-By: Jan Hubicka <jh@suse.cz>

From-SVN: r204690
2013-11-11 23:21:02 +00:00
Ian Lance Taylor 9544822809 net: Fix TCP keepalive handling for Solaris.
From-SVN: r204688
2013-11-11 21:25:42 +00:00
Ian Lance Taylor 3c450181dc mksysinfo, net: Always define F_DUPFD_CLOEXEC.
For Solaris and CentOS portability.

From-SVN: r204687
2013-11-11 21:21:50 +00:00
Marc Glisse 35aacd4cc9 tree-ssa-alias.c (stmt_kills_ref_p_1): Use ao_ref_init_from_ptr_and_size for builtins.
2013-11-11  Marc Glisse  <marc.glisse@inria.fr>
	    Jeff Law  <law@redhat.com>

gcc/
	* tree-ssa-alias.c (stmt_kills_ref_p_1): Use
	ao_ref_init_from_ptr_and_size for builtins.

gcc/testsuite/
	* gcc.dg/tree-ssa/alias-27.c: New testcase.

Co-Authored-By: Jeff Law <law@redhat.com>

From-SVN: r204686
2013-11-11 20:56:19 +00:00
Uros Bizjak 5783ad0ea7 re PR target/58853 (ICE in expand_set_or_movmem_prologue_epilogue_by_misaligned_moves)
PR target/58853
	* config/i386/x86-tune.def
	(X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
	TARGET_MISALIGNED_MOVE_STRING_PROLOGUES.
	* config/i386/i386.h
	(TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
	TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES.  Update for renamed
	X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES.
	* config/i386/i386.c (ix86_expand_set_or_movmem): Use
	TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES to calculate
	misaligned_prologue_used.  Check that
	desired_aling <= epilogue_size_needed.

testsuite/ChangeLog:

	PR target/58853
	* gcc.target/i386/pr58853.c: New test.


Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>

From-SVN: r204685
2013-11-11 21:02:19 +01:00
Ian Lance Taylor eb47f18904 os: Do not try to run go command in test.
From-SVN: r204684
2013-11-11 19:41:00 +00:00
Cong Hou 1e56366733 re PR tree-optimization/59050 (ICE: tree check: expected integer_cst, have nop_expr in tree_int_cst_lt, at tree.c:7083)
2013-11-11  Cong Hou  <congh@google.com>

    PR tree-optimization/59050
    * tree-vect-data-refs.c (comp_dr_addr_with_seg_len_pair): Bug fix.

From-SVN: r204683
2013-11-11 14:03:39 -05:00
Joern Rennecke b2b262e383 re PR middle-end/59049 (Two VOIDmode constant in comparison passed to cstoresi4)
PR middle-end/59049
        * expmed.c (emit_store_flag): Fail for const-const comparison.

From-SVN: r204682
2013-11-11 18:57:25 +00:00
Joern Rennecke c733374a3d forwprop-28.c: Adjust for ARC LOGICAL_OP_NON_SHORT_CIRCUIT definition.
* gcc.dg/tree-ssa/forwprop-28.c: Adjust for ARC 
        LOGICAL_OP_NON_SHORT_CIRCUIT definition.
        * gcc.dg/tree-ssa/ssa-dom-thread-4.c: Likewise. 
        * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-1.c: Likewise. 
        * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-4.c: Likewise. 
        * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-5.c: Likewise. 
        * gcc.dg/tree-ssa/ssa-ifcombine-ccmp-6.c: Likewise. 
        * gcc.dg/tree-ssa/vrp47.c: Likewise. 
        * gcc.dg/tree-ssa/vrp87.c: Likewise.

From-SVN: r204681
2013-11-11 18:46:33 +00:00
Joern Rennecke 213dba3e31 Remove ChangeLog merge turd from r204590.
From-SVN: r204680
2013-11-11 18:40:04 +00:00
Ian Lance Taylor 64c7b4c0c9 compiler: Support Go 1.2 nil checks.
From-SVN: r204679
2013-11-11 17:49:10 +00:00
Eric Botcazou d368135f69 gimplify.c (gimplify_init_constructor): Do not clear the object when the constructor is incomplete and...
* gimplify.c (gimplify_init_constructor): Do not clear the object when
	the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.

From-SVN: r204678
2013-11-11 16:59:23 +00:00
Tristan Gingold 1448093c32 tree.h (CONSTRUCTOR_NO_CLEARING): Define.
* tree.h (CONSTRUCTOR_NO_CLEARING): Define.
	* tree-core.h (CONSTRUCTOR_NO_CLEARING): Document it.
	* tree.def (CONSTRUCTOR): Likewise.
	* doc/generic.texi (CONSTRUCTOR): Likewise.  Update description.
	* gimplify.c (gimplify_init_constructor): Do not clear the object when
	the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.
ada/
	* gcc-interface/utils2.c (gnat_build_constructor): Also set the flag
	CONSTRUCTOR_NO_CLEARING on the constructor.

From-SVN: r204677
2013-11-11 16:55:29 +00:00
Basile Starynkevitch 7008512d47 toplev.c (toplev_main): Move PLUGIN_FINISH invocation before diagnostic_finish.
2013-11-11  Basile Starynkevitch  <basile@starynkevitch.net>

         * toplev.c (toplev_main): Move PLUGIN_FINISH invocation before
           diagnostic_finish.

From-SVN: r204674
2013-11-11 14:54:14 +00:00
Kyrylo Tkachov de75e25fb0 arm.c (arm_new_rtx_costs): Return after handling comparisons.
* config/arm/arm.c (arm_new_rtx_costs): Return after handling
	comparisons.

From-SVN: r204673
2013-11-11 13:53:26 +00:00
Jonathan Wakely 6162239973 re PR libstdc++/54562 (mutex and condition variable timers)
PR libstdc++/54562
	* include/std/mutex (__timed_mutex_impl::__clock_t): Use
	high_resolution_clock for absolute timeouts, because
	pthread_mutex_timedlock uses CLOCK_REALTIME not CLOCK_MONOTONIC.
	(__timed_mutex_impl::_M_try_lock_for): Use steady_clock for relative
	timeouts as per [thread.req.timing].
	(__timed_mutex_impl::_M_try_lock_until<Clock,Duration>): Convert to
	__clock_t time point instead of using _M_try_lock_for.

From-SVN: r204672
2013-11-11 13:33:48 +00:00
Eric Botcazou 1a80085d42 config.host (arm-wrs-vxworks): Replace arm/t-vxworks with arm/t-elf in tmake_file.
* config.host (arm-wrs-vxworks): Replace arm/t-vxworks with arm/t-elf
	in tmake_file.
	* config/arm/t-vxworks: Delete.

From-SVN: r204669
2013-11-11 11:46:17 +00:00
Joern Rennecke b4e2397083 * config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
From-SVN: r204666
2013-11-11 10:22:58 +00:00