Richard Biener [Wed, 13 Nov 2013 11:58:12 +0000 (11:58 +0000)]
gimple-streamer-out.c (output_gimple_stmt): Also wrap decls in ADDR_EXPR operands inside a MEM_REF and optimize that.
2013-11-13 Richard Biener <rguenther@suse.de>
* gimple-streamer-out.c (output_gimple_stmt): Also wrap
decls in ADDR_EXPR operands inside a MEM_REF and optimize that.
* gimple-streamer-in.c (input_gimple_stmt): Remove now dead
code dealing with type mismatches inside component reference
chains.
From-SVN: r204740
Marc Glisse [Wed, 13 Nov 2013 11:55:01 +0000 (12:55 +0100)]
re PR tree-optimization/59077 (ipa-pure-const.c (better_state): comment and code mistmatch)
2013-11-13 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/59077
* ipa-pure-const.c (better_state): Update *state.
From-SVN: r204739
Christophe Lyon [Wed, 13 Nov 2013 10:11:00 +0000 (10:11 +0000)]
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
Eric Botcazou [Wed, 13 Nov 2013 10:07:14 +0000 (10:07 +0000)]
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
Kyrylo Tkachov [Wed, 13 Nov 2013 09:45:20 +0000 (09:45 +0000)]
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
Alexander Ivchenko [Wed, 13 Nov 2013 08:21:57 +0000 (08:21 +0000)]
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
Joseph Myers [Wed, 13 Nov 2013 00:43:03 +0000 (00:43 +0000)]
* gcc.dg/c11-complex-1.c: New test.
From-SVN: r204732
Joseph Myers [Wed, 13 Nov 2013 00:38:49 +0000 (00:38 +0000)]
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
Rong Xu [Wed, 13 Nov 2013 00:24:49 +0000 (00:24 +0000)]
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
GCC Administrator [Wed, 13 Nov 2013 00:17:16 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r204729
Jakub Jelinek [Tue, 12 Nov 2013 23:42:55 +0000 (00:42 +0100)]
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
Balaji V. Iyer [Tue, 12 Nov 2013 23:17:26 +0000 (23:17 +0000)]
+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
Jeff Law [Tue, 12 Nov 2013 23:15:13 +0000 (16:15 -0700)]
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
Balaji V. Iyer [Tue, 12 Nov 2013 23:13:13 +0000 (23:13 +0000)]
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
Jeff Law [Tue, 12 Nov 2013 23:09:09 +0000 (16:09 -0700)]
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
Ian Lance Taylor [Tue, 12 Nov 2013 22:44:15 +0000 (22:44 +0000)]
compiler: Update for mainline changes.
From Andrew MacLeod.
From-SVN: r204721
Vladimir Makarov [Tue, 12 Nov 2013 21:33:06 +0000 (21:33 +0000)]
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
Michael Meissner [Tue, 12 Nov 2013 20:55:58 +0000 (20:55 +0000)]
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
Andrew MacLeod [Tue, 12 Nov 2013 20:26:43 +0000 (20:26 +0000)]
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
Adam Butcher [Tue, 12 Nov 2013 20:17:54 +0000 (20:17 +0000)]
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
Adam Butcher [Tue, 12 Nov 2013 20:17:44 +0000 (20:17 +0000)]
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
Adam Butcher [Tue, 12 Nov 2013 20:17:33 +0000 (20:17 +0000)]
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
Uros Bizjak [Tue, 12 Nov 2013 20:02:21 +0000 (21:02 +0100)]
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
Marek Polacek [Tue, 12 Nov 2013 17:56:48 +0000 (17:56 +0000)]
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
Joseph Myers [Tue, 12 Nov 2013 17:38:47 +0000 (17:38 +0000)]
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
Tristan Gingold [Tue, 12 Nov 2013 17:34:16 +0000 (17:34 +0000)]
aggr21.adb: New test.
* gnat.dg/aggr21.adb: New test.
* gnat.dg/aggr21_pkg.ad[sb]: New helper.
From-SVN: r204710
Jeff Law [Tue, 12 Nov 2013 16:41:51 +0000 (09:41 -0700)]
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
Teresa Johnson [Tue, 12 Nov 2013 15:03:28 +0000 (15:03 +0000)]
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
H.J. Lu [Tue, 12 Nov 2013 13:52:08 +0000 (13:52 +0000)]
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
H.J. Lu [Tue, 12 Nov 2013 13:26:51 +0000 (13:26 +0000)]
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
Martin Jambor [Tue, 12 Nov 2013 12:53:53 +0000 (13:53 +0100)]
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
Paolo Carlini [Tue, 12 Nov 2013 09:21:45 +0000 (09:21 +0000)]
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
Bin Cheng [Tue, 12 Nov 2013 06:42:05 +0000 (06:42 +0000)]
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
GCC Administrator [Tue, 12 Nov 2013 00:17:00 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r204693
Martin Liska [Mon, 11 Nov 2013 23:21:02 +0000 (23:21 +0000)]
Time profiler introduced.
Co-Authored-By: Jan Hubicka <jh@suse.cz>
From-SVN: r204690
Ian Lance Taylor [Mon, 11 Nov 2013 21:25:42 +0000 (21:25 +0000)]
net: Fix TCP keepalive handling for Solaris.
From-SVN: r204688
Ian Lance Taylor [Mon, 11 Nov 2013 21:21:50 +0000 (21:21 +0000)]
mksysinfo, net: Always define F_DUPFD_CLOEXEC.
For Solaris and CentOS portability.
From-SVN: r204687
Marc Glisse [Mon, 11 Nov 2013 20:56:19 +0000 (21:56 +0100)]
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
Uros Bizjak [Mon, 11 Nov 2013 20:02:19 +0000 (21:02 +0100)]
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
Ian Lance Taylor [Mon, 11 Nov 2013 19:41:00 +0000 (19:41 +0000)]
os: Do not try to run go command in test.
From-SVN: r204684
Cong Hou [Mon, 11 Nov 2013 19:03:39 +0000 (14:03 -0500)]
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
Joern Rennecke [Mon, 11 Nov 2013 18:57:25 +0000 (18:57 +0000)]
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
Joern Rennecke [Mon, 11 Nov 2013 18:46:33 +0000 (18:46 +0000)]
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
Joern Rennecke [Mon, 11 Nov 2013 18:40:04 +0000 (18:40 +0000)]
Remove ChangeLog merge turd from r204590.
From-SVN: r204680
Ian Lance Taylor [Mon, 11 Nov 2013 17:49:10 +0000 (17:49 +0000)]
compiler: Support Go 1.2 nil checks.
From-SVN: r204679
Eric Botcazou [Mon, 11 Nov 2013 16:59:23 +0000 (16:59 +0000)]
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
Tristan Gingold [Mon, 11 Nov 2013 16:55:29 +0000 (16:55 +0000)]
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
Basile Starynkevitch [Mon, 11 Nov 2013 14:54:14 +0000 (14:54 +0000)]
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
Kyrylo Tkachov [Mon, 11 Nov 2013 13:53:26 +0000 (13:53 +0000)]
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
Jonathan Wakely [Mon, 11 Nov 2013 13:33:48 +0000 (13:33 +0000)]
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
Eric Botcazou [Mon, 11 Nov 2013 11:46:17 +0000 (11:46 +0000)]
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
Joern Rennecke [Mon, 11 Nov 2013 10:22:58 +0000 (10:22 +0000)]
* config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
From-SVN: r204666
Jeff Law [Mon, 11 Nov 2013 03:04:57 +0000 (20:04 -0700)]
tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump threading paths first, then perform PHI node checks if applicable.
* tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
threading paths first, then perform PHI node checks if applicable.
From-SVN: r204659
GCC Administrator [Mon, 11 Nov 2013 00:16:51 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r204658
Paolo Carlini [Sun, 10 Nov 2013 23:40:57 +0000 (23:40 +0000)]
cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before maybe_warn_zero_as_null_pointer_constant to avoid...
2013-11-10 Paolo Carlini <paolo.carlini@oracle.com>
* cvt.c (cp_convert_to_pointer): Call build_ptrmemfunc before
maybe_warn_zero_as_null_pointer_constant to avoid duplicate
-Wzero-as-null-pointer-constant diagnostics.
* typeck.c (build_ptrmemfunc): Use cp_build_c_cast.
From-SVN: r204655
Janne Blomqvist [Sun, 10 Nov 2013 20:34:29 +0000 (22:34 +0200)]
Set close-on-exec flag when opening files.
2013-11-10 Janne Blomqvist <jb@gcc.gnu.org>
* configure.ac: Check presence of mkostemp.
* io/unix.c (set_close_on_exec): New function.
(tempfile_open): Use mkostemp and O_CLOEXEC if available, fallback
to calling set_close_on_exec.
(regular_file): Add O_CLOEXEC to flags if defined.
(open_external): Call set_close_on_exec if O_CLOEXEC is not
defined.
* config.h.in: Regenerated.
* configure: Regenerated.
* Makefile.in: Regenerated.
* aclocal.m4: Regenerated.
From-SVN: r204654
Kai Tietz [Sun, 10 Nov 2013 19:27:38 +0000 (20:27 +0100)]
Fixed typo about bug-number ...
PR plugin/52872
* configure.ac: Adding for exported symbols check
and for rdynamic-check executable-extension.
* configure: Regenerated.
From-SVN: r204651
Karlson2k [Sun, 10 Nov 2013 19:24:43 +0000 (19:24 +0000)]
re PR plugins/52872 (--enable-plugin; incorrect test for "exported symbols" and "-rdynamic" in gcc/configure.ac)
PR plugin/52862
* configure.ac: Adding for exported symbols check
and for rdynamic-check executable-extension.
* configure: Regenerated.
Co-Authored-By: Kai Tietz <ktietz@redhat.com>
From-SVN: r204650
Uros Bizjak [Sun, 10 Nov 2013 18:38:36 +0000 (19:38 +0100)]
mode-switching.c (optimize_mode_switching): Mark block as nontransparent, if last_mode at block exit is different from no_mode.
* mode-switching.c (optimize_mode_switching): Mark block as
nontransparent, if last_mode at block exit is different from no_mode.
From-SVN: r204649
Kai Tietz [Sun, 10 Nov 2013 11:47:18 +0000 (12:47 +0100)]
cygming-crtbegin.c (__gcc_register_frame): Increment load-count on use of LIBGCC_SONAME DLL.
2013-11-10 Kai Tietz <ktietz@redhat.com>
* config/i386/cygming-crtbegin.c (__gcc_register_frame):
Increment load-count on use of LIBGCC_SONAME DLL.
(hmod_libgcc): New static variable to hold handle of
LIBGCC_SONAME DLL.
(__gcc_deregister_frame): Decrement load-count of
LIBGCC_SONAME DLL.
From-SVN: r204635
Uros Bizjak [Sun, 10 Nov 2013 11:45:42 +0000 (12:45 +0100)]
fenv.c: New file.
* config/x86/fenv.c: New file.
From-SVN: r204634
GCC Administrator [Sun, 10 Nov 2013 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r204623
Jan-Benedict Glaw [Sat, 9 Nov 2013 20:12:59 +0000 (20:12 +0000)]
function.c (NAME__MAIN): Move to...
2013-11-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* function.c (NAME__MAIN): Move to...
* cfgexpand.c (NAME__MAIN): ...here.
[BR]: http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01003.html
From-SVN: r204620
Joseph Myers [Sat, 9 Nov 2013 16:32:34 +0000 (16:32 +0000)]
c-common.c (atomic_size_supported_p): New function.
* c-common.c (atomic_size_supported_p): New function.
(resolve_overloaded_atomic_exchange)
(resolve_overloaded_atomic_compare_exchange)
(resolve_overloaded_atomic_load, resolve_overloaded_atomic_store):
Use it instead of comparing size with a local list of sizes.
From-SVN: r204618
Ian Lance Taylor [Sat, 9 Nov 2013 16:23:00 +0000 (16:23 +0000)]
runtime: Correct flag (FlagNoGC => FlagNoInvokeGC).
From-SVN: r204617
Jonathan Wakely [Sat, 9 Nov 2013 12:38:00 +0000 (12:38 +0000)]
re PR libstdc++/58982 (std::vector<std::atomic<int>> vai(10); does not compile anymore)
PR libstdc++/58982
* include/bits/stl_algobase.h (__copy_move::__copy_m): Use assertion
to prevent using memmove() on non-assignable types.
(__copy_move_backward::__copy_move_b): Likewise.
* include/bits/stl_uninitialized.h (uninitialized_copy
uninitialized_copy_n, uninitialized_fill, uninitialized_fill_n,
__uninitialized_default, __uninitialized_default_n): Check for
assignable as well as trivial.
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
58982.cc: New.
* testsuite/20_util/specialized_algorithms/uninitialized_copy_n/
58982.cc: New.
* testsuite/20_util/specialized_algorithms/uninitialized_fill/
58982.cc: New.
* testsuite/20_util/specialized_algorithms/uninitialized_fill_n/
58982.cc: New.
* testsuite/25_algorithms/copy/58982.cc: New.
* testsuite/25_algorithms/copy_n/58982.cc: New.
From-SVN: r204615
Richard Sandiford [Sat, 9 Nov 2013 11:42:16 +0000 (11:42 +0000)]
target.def (can_use_doloop_p): New hook.
gcc/
* target.def (can_use_doloop_p): New hook.
* doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add.
* doc/tm.texi: Regenerate.
* doc/md.texi (doloop_begin, doloop_end): Update documentation.
* hooks.h (hook_bool_dint_dint_uint_true): Declare.
* hooks.c (hook_bool_dint_dint_uint_true): New function.
* targhooks.h (can_use_doloop_if_innermost): Declare.
* targhooks.c (can_use_doloop_if_innermost): New function.
* target.h: Include double-int.h.
* loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p.
Remove iteration count, maximum iteration count, loop depth and
enter-at-top inputs from doloop_begin and doloop_end.
* config/arc/arc.md (doloop_begin, doloop_end): Update for new
interface.
* config/arc/arc.c (arc_can_use_doloop_p): New function.
(TARGET_CAN_USE_DOLOOP_P): Define.
* config/arm/thumb2.md (doloop_end): Update for new interface.
* config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define.
* config/bfin/bfin.md (doloop_end): Update for new interface.
* config/bfin/bfin.c (bfin_can_use_doloop_p): New function.
(TARGET_CAN_USE_DOLOOP_P): Define.
* config/c6x/c6x.md (doloop_end): Update for new interface.
* config/ia64/ia64.md (doloop_end): Update for new interface.
* config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define.
* config/mep/mep.md (doloop_begin, doloop_end): Update for new
interface.
* config/mep/mep.c (mep_emit_doloop): Likewise.
(TARGET_CAN_USE_DOLOOP_P): Define.
* config/rs6000/rs6000.md (doloop_end): Update for new interface.
* config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define.
* config/s390/s390.md (doloop_end): Update for new interface.
* config/sh/sh.md (doloop_end): Likewise.
* config/spu/spu.md (doloop_end): Likewise.
* config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define.
* config/tilegx/tilegx.md (doloop_end): Update for new interface.
* config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define.
* config/tilepro/tilepro.md (doloop_end): Update for new interface.
* config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define.
* config/v850/v850.md (doloop_begin, doloop_end): Update for new
interface.
* config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define.
From-SVN: r204614
GCC Administrator [Sat, 9 Nov 2013 00:16:56 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r204611
Diego Novillo [Fri, 8 Nov 2013 22:46:16 +0000 (17:46 -0500)]
Re-factor tree.h - Part 1.
This is the first patch in a series of patches to cleanup tree.h to
reduce the exposure it has all over the compiler.
In this patch, I'm moving functions that are used once into the files
that use them, and make them private to that file. These functions
were declared extern in tree.h and called from exactly one place.
The patch does not move EVERY function. This usually happens
when the function uses private state from its original file, and
moving that private state would mean moving other functions that made
no sense to move.
Additionally, the patch removes functions that were never used.
In subsequent patches, I will be moving out of tree.h extern definitions
that should be grouped in other files (e.g., all functions defined in
some FOO.c will be moved to the corresponding FOO.h). This will allow
me to remove the inclusion of tree.h from some files.
* attribs.c (lookup_scoped_attribute_spec): Make static.
(get_attribute_namespace): Likewise.
* builtins.c (more_const_call_expr_args_p): Move from
tree.h.
(validate_arglist): Move earlier in the file. Make static.
(expand_stack_restore): Move from stmt.c
(expand_stack_save): Move from stmt.c
(rewrite_call_expr_array): Move earlier in the file.
(rewrite_call_expr_valist): Likewise.
* cfgexpand.c: Include hard-reg-set.h before tree.h
Include recog.h.
Include output.h.
(expand_asm_loc): Move from stmt.c.
(n_occurrences): Move from stmt.c.
(check_operand_nalternatives): Move from stmt.c.
(tree_conflicts_with_clobbers_p): Move from stmt.c.
(expand_asm_operands): Move from stmt.c
(expand_asm_stmt): Move from stmt.c
(expand_computed_goto): Move from stmt.c
(expand_goto): Move from stmt.c
(expand_null_return_1): Move from stmt.c
(expand_null_return): Move from stmt.c
(expand_value_return): Move from stmt.c
(expand_return): Move from stmt.c
(expand_main_function): Move from function.c
(stack_protect_prologue): Move from function.c
* cgraphclones.c (build_function_type_skip_args): Move from tree.c.
(build_function_decl_skip_args): Move from tree.c.
* explow.c (tree_expr_size): Move from tree.c.
* expr.c (addr_expr_of_non_mem_decl_p): Remove.
(fields_length): Move from tree.c.
* fold-const.c (size_low_cst): Move from tree.c.
(tree_expr_nonzero_warnv_p): Make static. Move earlier in the file.
(tree_expr_nonzero_p): Make static. Move earlier in the file.
(fold_build3_initializer_loc): Remove.
(tree_invalid_nonnegative_warnv_p): Make static.
* function.c (expand_main_function): Move to cfgexpand.c.
(stack_protect_prologue): Move to cfgexpand.c.
(set_insn_locations): Move earlier in the file.
* gimple-fold.c: Include langhooks.h.
(truth_type_for): Move from tree.c.
* print-tree.c (print_vec_tree): Remove.
* stmt.c (expand_computed_goto): Move to cfgexpand.c.
(expand_goto): Move to cfgexpand.c.
(n_occurrences): Move to cfgexpand.c.
(expand_asm_loc): Move to cfgexpand.c
(tree_conflicts_with_clobbers_p): Move to cfgexpand.c.
(expand_asm_operands): Move to cfgexpand.c.
(expand_asm_stmt): Move to cfgexpand.c.
(check_operand_nalternatives): Move to cfgexpand.c
(expand_null_return): Move to cfgexpand.c.
(expand_value_return): Move to cfgexpand.c.
(expand_null_return_1): Move to cfgexpand.c.
(expand_return): Move to cfgexpand.c.
(expand_stack_save): Move to builtins.c.
(expand_stack_restore): Move to builtins.c
* symtab.c: Include output.h.
(decl_assembler_name_hash): Move from tree.c.
(decl_assembler_name_equal): Move from tree.c.
* trans-mem.c (is_tm_safe_or_pure): Move from tree.h.
* tree-eh.c (in_array_bounds_p): Move from tree.c.
(range_in_array_bounds_p): Move from tree.c.
* tree-object-size.c (fini_object_sizes): Make static.
* tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h.
* tree-vrp.c (ssa_name_nonnegative_p): Remove.
* tree.c (decl_assembler_name_equal): Move to symtab.c.
(tree_expr_size): Move to explow.c.
(decl_assembler_name_hash): Move to symtab.c.
(real_twop): Remove.
(tree_expr_size): Move to explow.c.
(stabilize_reference_1): Move earlier in the file. Make static.
(omp_remove_redundant_declare_simd_attrs): Remove.
(simple_cst_list_equal): Move earlier in the file. Make static.
(size_low_cst): Move to fold-const.c.
(build_type_no_quals): Remove.
(build_function_type_skip_args): Move to cgraphclones.c.
(build_function_decl_skip_args): Move to cgraphclones.c.
(in_array_bounds_p): Move to tree-eh.c.
(range_in_array_bounds_p): Move to tree-eh.c.
(truth_type_for): Move to gimple-fold.c.
(list_equal_p): remove.
* tree.h (decl_assembler_name_equal): Remove.
(decl_assembler_name_hash): Remove.
(truth_type_for): Remove.
(build_type_no_quals): Remove.
(build_function_decl_skip_args): Remove.
(in_array_bounds_p): Remove.
(range_in_array_bounds_p): Remove.
(size_low_cst): Remove.
(omp_remove_redundant_declare_simd_attrs): Remove.
(tree_expr_size): Remove.
(fields_length): Remove.
(stabilize_reference_1): Remove.
(expand_goto): Remove.
(expand_stack_save): Remove.
(expand_stack_restore): Remove.
(expand_return): Remove.
(fold_build3_initializer_loc): Remove.
(tree_expr_nonzero_p): Remove.
(tree_invalid_nonnegative_warnv_p): Remove.
(tree_expr_nonzero_warnv_p): Remove.
(fold_builtin_snprintf_chk): Remove.
(validate_arglist): Remove.
(iterative_hash_exprs_commutative): Move to tree-ssa-dom.c.
(simple_cst_list_equal): Remove.
(real_twop): Remove.
(expand_main_function): Remove.
(stack_protect_prologue): Remove.
(print_vec_tree): Remove.
(lookup_scoped_attribute_spec): Remove.
(get_attribute_namespace): Remove.
(expand_computed_goto): Remove.
(expand_asm_stmt): Remove.
(list_equal_p): Remove.
(ssa_name_nonnegative_p): Remove.
(fini_object_sizes): Remove.
(addr_expr_of_non_mem_decl_p): Remove.
(is_tm_safe_or_pure): Move to trans-mem.c.
(more_const_call_expr_args_p): Remove.
(save_vtable_map_decl): Remove.
From-SVN: r204606
H.J. Lu [Fri, 8 Nov 2013 22:16:59 +0000 (22:16 +0000)]
Move Cilk Plus Builtins node before Other Builtins node
PR other/59055
* doc/extend.texi: Move Cilk Plus Builtins node before Other
Builtins node.
From-SVN: r204604
Joseph Myers [Fri, 8 Nov 2013 22:15:09 +0000 (22:15 +0000)]
[multiple changes]
2013-11-08 Andrew MacLeod <amacleod@redhat.com>
Joseph Myers <joseph@codesourcery.com>
* ginclude/stdatomic.h: New file.
* Makefile.in (USER_H): Add stdatomic.h.
testsuite:
2013-11-08 Joseph Myers <joseph@codesourcery.com>
* gcc.dg/atomic/stdatomic-compare-exchange-1.c,
gcc.dg/atomic/stdatomic-compare-exchange-2.c,
gcc.dg/atomic/stdatomic-compare-exchange-3.c,
gcc.dg/atomic/stdatomic-compare-exchange-4.c,
gcc.dg/atomic/stdatomic-exchange-1.c,
gcc.dg/atomic/stdatomic-exchange-2.c,
gcc.dg/atomic/stdatomic-exchange-3.c,
gcc.dg/atomic/stdatomic-exchange-4.c,
gcc.dg/atomic/stdatomic-fence.c, gcc.dg/atomic/stdatomic-flag.c,
gcc.dg/atomic/stdatomic-generic.c,
gcc.dg/atomic/stdatomic-kill-dep.c,
gcc.dg/atomic/stdatomic-load-1.c,
gcc.dg/atomic/stdatomic-load-2.c,
gcc.dg/atomic/stdatomic-load-3.c,
gcc.dg/atomic/stdatomic-load-4.c,
gcc.dg/atomic/stdatomic-lockfree.c,
gcc.dg/atomic/stdatomic-op-1.c, gcc.dg/atomic/stdatomic-op-2.c,
gcc.dg/atomic/stdatomic-op-3.c, gcc.dg/atomic/stdatomic-op-4.c,
gcc.dg/atomic/stdatomic-store-1.c,
gcc.dg/atomic/stdatomic-store-2.c,
gcc.dg/atomic/stdatomic-store-3.c,
gcc.dg/atomic/stdatomic-store-4.c, gcc.dg/c11-stdatomic-1.c: New
tests.
From-SVN: r204603
François Dumont [Fri, 8 Nov 2013 21:03:58 +0000 (21:03 +0000)]
safe_iterator.h (_BeforeBeginHelper<>::_S_Is): Take only a const safe iterator reference.
2013-11-08 François Dumont <fdumont@gcc.gnu.org>
* include/debug/safe_iterator.h (_BeforeBeginHelper<>::_S_Is):
Take only a const safe iterator reference.
(_BeforeBeginHelper<>::_S_Is_beginnest): Likewise.
(__get_distance): Take only one type of iterator.
(_Safe_iterator<>::_M_valid_range<>): Not template anymore.
(_Safe_iterator<>::_M_get_sequence()): Return pointer to const
sequence from a const_iterator and a pointer to sequence from an
iterator.
* include/debug/safe_iterator.tcc: Adapt.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator<>::_M_valid_range<>): Not template anymore.
(_Safe_local_iterator<>::_M_get_sequence()): Return pointer to
const sequence from a const_iterator and a pointer to sequence
from an iterator.
* include/debug/safe_local_iterator.tcc: Adapt.
* include/debug/forward_list
(_BeforeBeginHelper<std::__debug::forward_list<>>): Adapt.
From-SVN: r204598
Balaji V. Iyer [Fri, 8 Nov 2013 19:52:27 +0000 (19:52 +0000)]
+2013-11-08 Balaji V.
+2013-11-08 Balaji V. Iyer <balaji.v.iyer@intel.com>
+
+ PR c/59039
+ * runtime/cilk_fiber-unix.cpp: Fixed a crash in run() function
+ when optimization is turned on.
+
From-SVN: r204592
Cong Hou [Fri, 8 Nov 2013 18:44:46 +0000 (13:44 -0500)]
re PR tree-optimization/58508 ([Missed-Optimization] Redundant vector load of "actual" loop invariant in loop body.)
2013-11-08 Cong Hou <congh@google.com>
PR tree-optimization/58508
* gcc.dg/vect/pr58508.c: Update.
From-SVN: r204590
Kyrylo Tkachov [Fri, 8 Nov 2013 17:36:21 +0000 (17:36 +0000)]
arm.c (arm_new_rtx_costs): Break after handling comparisons.
* config/arm/arm.c (arm_new_rtx_costs): Break after handling
comparisons.
From-SVN: r204584
Ian Lance Taylor [Fri, 8 Nov 2013 17:35:24 +0000 (17:35 +0000)]
compiler: Fix bogus init loop error with struct composite literal.
This should eventually be bug482.go in the master testsuite.
From-SVN: r204583
Jonathan Wakely [Fri, 8 Nov 2013 17:33:31 +0000 (17:33 +0000)]
regex_compiler.h (__detail::__has_contiguous_iter): vector<bool> storage is not contiguous.
* include/bits/regex_compiler.h (__detail::__has_contiguous_iter):
vector<bool> storage is not contiguous.
From-SVN: r204582
Jeff Law [Fri, 8 Nov 2013 16:24:06 +0000 (09:24 -0700)]
tree-ssa-threadupdate.h (delete_thread_path): Declare.
* tree-ssa-threadupdate.h (delete_thread_path): Declare.
* tree-ssa-threadupdate.c (delete_thread_path): New function.
(ssa_redirect_edges, thread_block_1): Use it.
(thread_through_loop_header, mark_threaded_blocks): Likewise.
(thread_through_all_blocks, register_jump_thread): Likewise.
* tree-ssa-threadedge.c (thread_across_edge): Likewise.
From-SVN: r204579
James Greenhalgh [Fri, 8 Nov 2013 15:09:50 +0000 (15:09 +0000)]
[ARM, AArch64] Make aarch-common.c files more robust.
gcc/
* config/arm/aarch-common.c
(search_term): New typedef.
(shift_rtx_costs): New array.
(arm_rtx_shift_left_p): New.
(arm_find_sub_rtx_with_search_term): Likewise.
(arm_find_sub_rtx_with_code): Likewise.
(arm_early_load_addr_dep): Add sanity checking.
(arm_no_early_alu_shift_dep): Likewise.
(arm_no_early_alu_shift_value_dep): Likewise.
(arm_no_early_mul_dep): Likewise.
(arm_no_early_store_addr_dep): Likewise.
From-SVN: r204575
Jonathan Wakely [Fri, 8 Nov 2013 14:30:40 +0000 (14:30 +0000)]
regex_compiler.h (__detail::__compile_nfa): Overload so that std::basic_string<C> and std::vector<C> iterators dispatch to...
* include/bits/regex_compiler.h (__detail::__compile_nfa): Overload
so that std::basic_string<C> and std::vector<C> iterators dispatch to
the const C* compiler.
From-SVN: r204574
Jonathan Wakely [Fri, 8 Nov 2013 14:30:34 +0000 (14:30 +0000)]
regex_compiler.h (__detail::_AnyMatcher, [...]): Remove redundant _CharT template parameters.
* include/bits/regex_compiler.h (__detail::_AnyMatcher,
__detail::_CharMatcher, __detail::_BracketMatcher): Remove redundant
_CharT template parameters.
* include/bits/regex_compiler.tcc: Likewise.
From-SVN: r204573
Jonathan Wakely [Fri, 8 Nov 2013 14:30:29 +0000 (14:30 +0000)]
regex_automaton.h (__detail::_State, [...]): Remove redundant _CharT template parameters.
* include/bits/regex_automaton.h (__detail::_State, __detail::_NFA,
__detail::_StateSeq): Remove redundant _CharT template parameters.
* include/bits/regex_automaton.tcc: Likewise.
* include/bits/regex_compiler.h (__detail::_Compiler): Likewise.
(__compile_nfa): Add object generator for _Compiler.
* include/bits/regex_compiler.tcc: Remove _CharT template parameters.
* include/bits/regex_executor.h: Likewise.
* include/bits/regex_executor.tcc: Likewise.
* include/bits/regex.h (basic_regex): Assert char_type matches. Use
__compile_nfa object generator. Remove _CharT template parameter.
From-SVN: r204572
Jonathan Wakely [Fri, 8 Nov 2013 14:30:22 +0000 (14:30 +0000)]
regex_automaton.h (__detail::_State): Split non-dependent parts into new _State_base.
* include/bits/regex_automaton.h (__detail::_State): Split
non-dependent parts into new _State_base.
(__detail::_NFA): Likewise for _NFA_base. Use std::move() to avoid
copies when inserting _MatcherT and _StateT objects.
* include/bits/regex_automaton.tcc: Move member definitions to base
class. Qualify dependent names.
* include/bits/regex_compiler.h (__detail::_Compiler::_M_get_nfa): Make
non-const and use std::move to avoid copying.
* include/bits/regex_compiler.tcc: Likewise.
* include/bits/regex_executor.h (__detail::_Executor::_M_is_word): Use
array, so past-the-end iterator is valid.
From-SVN: r204571
Richard Biener [Fri, 8 Nov 2013 12:49:10 +0000 (12:49 +0000)]
re PR tree-optimization/59047 (wrong code for bitfields at -O3 on x86_64-linux-gnu)
2013-11-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/59047
* tree-predcom.c (ref_at_iteration): Handle bitfield accesses
properly.
* gcc.dg/torture/pr59047.c: New testcase.
From-SVN: r204566
Ilya Enkovich [Fri, 8 Nov 2013 10:57:54 +0000 (10:57 +0000)]
common.opt (fcheck-pointer-bounds): Move to ...
* common.opt (fcheck-pointer-bounds): Move to ...
* c-family/c.opt: ... here.
* langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
* langhooks.h (lang_hooks): Remove chkp_supported field.
* toplev.c (process_options): Remove chkp_supported check.
From-SVN: r204563
Bernhard Reutner-Fischer [Fri, 8 Nov 2013 10:18:27 +0000 (11:18 +0100)]
libgcc: check for fenv.h in dfp configure check
uClibc can be built without fenv support, extend the configure check for
decimal floating point to probe the existance of fenv.h, too.
libgcc/ChangeLog:
2013-03-24 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
* configure.ac (libgcc_cv_dfp): Extend check to probe fenv.h
availability.
* configure: Regenerate
From-SVN: r204562
Richard Biener [Fri, 8 Nov 2013 08:44:02 +0000 (08:44 +0000)]
re PR tree-optimization/59038 (r204398 causes 186.crafty init.c to be miscompiled)
2013-11-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/59038
PR tree-optimization/58955
* tree-loop-distribution.c (pg_add_dependence_edges): Revert
previous change. Handle known dependences correctly.
* gcc.dg/torture/pr59038.c: New testcase.
From-SVN: r204561
Ian Lance Taylor [Fri, 8 Nov 2013 05:46:22 +0000 (05:46 +0000)]
compiler: Correct types when type conversion makes backend call.
From-SVN: r204559
Tom de Vries [Fri, 8 Nov 2013 00:38:08 +0000 (00:38 +0000)]
Remove duplicate contents in gcc/config/rs6000/t-xilinx
2013-11-08 Tom de Vries <tom@codesourcery.com>
* config/rs6000/t-xilinx: Remove duplicate contents.
From-SVN: r204555
GCC Administrator [Fri, 8 Nov 2013 00:16:23 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r204554
Ian Lance Taylor [Thu, 7 Nov 2013 23:38:47 +0000 (23:38 +0000)]
runtime: Fixes for Alpha.
From-SVN: r204551
Janus Weil [Thu, 7 Nov 2013 22:39:15 +0000 (23:39 +0100)]
re PR fortran/58471 (ICE on invalid with missing type constructor and -Wall)
2013-11-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/58471
* primary.c (gfc_expr_attr): Check for result symbol.
2013-11-07 Janus Weil <janus@gcc.gnu.org>
PR fortran/58471
* gfortran.dg/constructor_9.f90: New.
From-SVN: r204547
Uros Bizjak [Thu, 7 Nov 2013 21:53:54 +0000 (22:53 +0100)]
sfp-exceptions.c (__sfp_handle_exceptions): Rewrite FP_EX_INEXACT handling.
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Rewrite
FP_EX_INEXACT handling.
From-SVN: r204546
Joseph Myers [Thu, 7 Nov 2013 21:20:18 +0000 (21:20 +0000)]
atomic-compare-exchange-1.c, [...]: Declare main as returning int.
* gcc.dg/atomic-compare-exchange-1.c,
gcc.dg/atomic-compare-exchange-2.c,
gcc.dg/atomic-compare-exchange-3.c,
gcc.dg/atomic-compare-exchange-4.c,
gcc.dg/atomic-compare-exchange-5.c, gcc.dg/atomic-exchange-1.c,
gcc.dg/atomic-exchange-2.c, gcc.dg/atomic-exchange-3.c,
gcc.dg/atomic-exchange-4.c, gcc.dg/atomic-exchange-5.c,
gcc.dg/atomic-fence.c, gcc.dg/atomic-flag.c,
gcc.dg/atomic-generic.c, gcc.dg/atomic-invalid.c,
gcc.dg/atomic-load-1.c, gcc.dg/atomic-load-2.c,
gcc.dg/atomic-load-3.c, gcc.dg/atomic-load-4.c,
gcc.dg/atomic-load-5.c, gcc.dg/atomic-lockfree.c,
gcc.dg/atomic-noinline.c, gcc.dg/atomic-op-1.c,
gcc.dg/atomic-op-2.c, gcc.dg/atomic-op-3.c, gcc.dg/atomic-op-4.c,
gcc.dg/atomic-op-5.c, gcc.dg/atomic-param.c,
gcc.dg/atomic-store-1.c, gcc.dg/atomic-store-2.c,
gcc.dg/atomic-store-3.c, gcc.dg/atomic-store-4.c,
gcc.dg/atomic-store-5.c: Declare main as returning int.
* gcc.dg/atomic-exchange-1.c, gcc.dg/atomic-exchange-2.c,
gcc.dg/atomic-exchange-3.c, gcc.dg/atomic-exchange-4.c,
gcc.dg/atomic-exchange-5.c: Separate increments of count from
expression using value of count.
From-SVN: r204545
Joseph Myers [Thu, 7 Nov 2013 21:15:25 +0000 (21:15 +0000)]
tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
gcc:
2013-11-05 Andrew MacLeod <amacleod@redhat.com>
Joseph Myers <joseph@codesourcery.com>
* tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
(enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
(struct tree_base): Add atomic_flag field.
* tree.h (TYPE_ATOMIC): New accessor macro.
(TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
(TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
(atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
(atomicDI_type_node, atomicTI_type_node): New macros for type
nodes.
* tree.c (set_type_quals): Set TYPE_ATOMIC.
(find_atomic_core_type): New function.
(build_qualified_type): Adjust alignment for qualified types.
(build_atomic_base): New function
(build_common_tree_nodes): Build atomicQI_type_node,
atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
atomicTI_type_node.
* print-tree.c (print_node): Print atomic qualifier.
* tree-pretty-print.c (dump_generic_node): Print atomic type
attribute.
* target.def (atomic_assign_expand_fenv): New hook.
* doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
* doc/tm.texi: Regenerate.
* targhooks.c (default_atomic_assign_expand_fenv): New function.
* targhooks.h (default_atomic_assign_expand_fenv): Declare.
* sync-builtins.def (__atomic_feraiseexcept): New built-in
function.
* config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New
function type.
* config/i386/i386.c (enum ix86_builtins): Add
IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and
IX86_BUILTIN_FNCLEX.
(bdesc_special_args): Add __builtin_ia32_fnstenv,
__builtin_ia32_fldenv, __builtin_ia32_fnstsw and
__builtin_ia32_fnclex.
(ix86_expand_builtin): Handle the new built-in functions.
(ix86_atomic_assign_expand_fenv): New function.
(TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro.
* config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV)
(UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs.
(fnstenv, fldenv, fnstsw, fnclex): New insns.
gcc/c-family:
2013-11-05 Andrew MacLeod <amacleod@redhat.com>
Joseph Myers <joseph@codesourcery.com>
* c-common.h (enum rid): Add RID_ATOMIC.
* c-common.c (c_common_reswords): Add _Atomic.
(sync_resolve_params): Use TYPE_MAIN_VARIANT on pointer argument.
(keyword_is_type_qualifier): Accept RID_ATOMIC.
* c-format.c (check_format_types): Check for extra _Atomic
qualifiers in format argument.
* c-pretty-print.c (pp_c_cv_qualifiers): Handle atomic qualifier.
(pp_c_type_qualifier_list): Mention _Atomic in comment.
gcc/c:
2013-11-05 Joseph Myers <joseph@codesourcery.com>
Andrew MacLeod <amacleod@redhat.com>
* c-aux-info.c (gen_type): Handle atomic qualifier.
* c-decl.c (validate_proto_after_old_defn): Do not remove atomic
qualifiers when compating types.
(shadow_tag_warned): Handle atomic_p in declspecs.
(quals_from_declspecs): Likewise.
(start_decl): Use c_type_promotes_to when promoting argument
types.
(grokdeclarator): Handle _Atomic.
(get_parm_info): Diagnose any qualifier on "void" as only
parameter.
(store_parm_decls_oldstyle): Do not remove atomic qualifiers when
comparing types. Use c_type_promotes_to when promoting argument
types.
(finish_function): Use c_type_promotes_to when promoting argument
types.
(build_null_declspecs): Handle atomic_p in declspecs.
(declspecs_add_qual): Handle RID_ATOMIC.
* c-parser.c (c_token_starts_typename, c_token_is_qualifier)
(c_token_starts_declspecs): Handle RID_ATOMIC.
(c_parser_declspecs): Handle atomic type specifiers and
qualifiers.
(c_parser_typeof_specifier): Remove const and _Atomic qualifiers
from types of expressions with atomic type.
(c_parser_direct_declarator_inner): Use convert_lvalue_to_rvalue.
(c_parser_attribute_any_word): Handle RID_ATOMIC.
(c_parser_initializer, c_parser_initelt, c_parser_initval)
(c_parser_statement_after_labels, c_parser_switch_statement)
(c_parser_for_statement, c_parser_expr_no_commas)
(c_parser_conditional_expression, c_parser_binary_expression)
(c_parser_cast_expression, c_parser_unary_expression)
(c_parser_postfix_expression)
(c_parser_postfix_expression_after_primary, c_parser_expression):
Use convert_lvalue_to_rvalue.
(c_parser_expression_conv, c_parser_expr_list): Document
conversion of lvalues to rvalues. Use convert_lvalue_to_rvalue.
(c_parser_objc_synchronized_statement): Use
convert_lvalue_to_rvalue.
(c_parser_objc_selector): Handle RID_ATOMIC.
(c_parser_objc_receiver, c_parser_array_notation): Use
convert_lvalue_to_rvalue.
* c-tree.h (ctsk_typeof): Adjust comment to mention use for
_Atomic (type-name).
(struct c_declspecs): Add atomic_p field.
(convert_lvalue_to_rvalue): Declare.
* c-typeck.c (c_type_promotes_to): Promote atomic types to
corresponding atomic types.
(qualify_type): Don't add _Atomic qualifiers from second argument.
(comp_target_types): Do not allow _Atomic mismatches.
(type_lists_compatible_p): Do not remove atomic qualifiers when
comparing types.
(really_atomic_lvalue, convert_lvalue_to_rvalue)
(build_atomic_assign): New functions.
(build_unary_op): Use build_atomic_assign for atomic increment and
decrement.
(build_conditional_expr): Do not treat _Atomic void as a qualified
version of void.
(build_modify_expr): Use build_atomic_assign for atomic LHS.
(find_anonymous_field_with_type, convert_to_anonymous_field)
(convert_for_assignment): Do not remove atomic qualifiers when
comparing types.
(digest_init): Do not accept initialization of arrays of atomic
elements by string constants.
(build_asm_expr): Use convert_lvalue_to_rvalue.
(build_binary_op): Do not treat _Atomic void as a qualified
version of void.
gcc/objc:
2013-11-05 Andrew MacLeod <amacleod@redhat.com>
* objc-act.c (objc_push_parm): Handle atomic qualifier.
gcc/testsuite:
2013-11-05 Joseph Myers <joseph@codesourcery.com>
* lib/target-supports.exp
(check_effective_target_fenv_exceptions): New function.
* lib/atomic-dg.exp, gcc.dg/atomic/atomic.exp: New files.
* gcc.dg/atomic/c11-atomic-exec-1.c,
gcc.dg/atomic/c11-atomic-exec-2.c,
gcc.dg/atomic/c11-atomic-exec-3.c,
gcc.dg/atomic/c11-atomic-exec-4.c,
gcc.dg/atomic/c11-atomic-exec-5.c, gcc.dg/c11-atomic-1.c,
gcc.dg/c11-atomic-2.c, gcc.dg/c11-atomic-3.c,
gcc.dg/c90-atomic-1.c, gcc.dg/c99-atomic-1.c: New tests.
libatomic:
2013-11-05 Joseph Myers <joseph@codesourcery.com>
* fenv.c: New file.
* libatomic.map (LIBATOMIC_1.1): New symbol version. Include
__atomic_feraiseexcept.
* configure.ac (libtool_VERSION): Change to 2:0:1.
(fenv.h): Test for header.
* Makefile.am (libatomic_la_SOURCES): Add fenv.c.
* Makefile.in, auto-config.h.in, configure: Regenerate.
From-SVN: r204544
Steve Ellcey [Thu, 7 Nov 2013 20:42:51 +0000 (20:42 +0000)]
mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
2013-11-07 Steve Ellcey <sellcey@mips.com>
* config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
* config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag.
(MULTILIB_DIRNAMES): Add fp64 directory.
(MULTILIB_EXCEPTIONS): Add new exclusions.
From-SVN: r204542
Aldy Hernandez [Thu, 7 Nov 2013 20:20:48 +0000 (20:20 +0000)]
gimplify.c (gimple_regimplify_operands): Do not set SSA_NAME_DEF_STMT.
* gimplify.c (gimple_regimplify_operands): Do not set
SSA_NAME_DEF_STMT.
* graphite-sese-to-poly.c (remove_simple_copy_phi): Same.
(rewrite_close_phi_out_of_ssa): Same.
(rewrite_phi_out_of_ssa): Same.
(rewrite_degenerate_phi): Same.
(handle_scalar_deps_crossing_scop_limits): Same.
* tree-if-conv.c (predicate_scalar_phi): Same.
* tree-parloops.c (create_loads_for_reductions): Same.
(create_final_loads_for_reduction): Same.
(create_loads_and_stores_for_name): Same.
(transform_to_exit_first_loop): Same.
(create_parallel_loop): Same.
* tree-ssa-loop-im.c
(move_computations_dom_walker::before_dom_children): Same.
* tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same.
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Same.
* tree-ssa-propagate.c (substitute_and_fold): Same.
* tree-vect-loop.c (vect_finalize_reduction): Same.
* tree-vect-stmts.c (vectorizable_call): Same.
From-SVN: r204541
Uros Bizjak [Thu, 7 Nov 2013 19:45:28 +0000 (20:45 +0100)]
sfp-exceptions.c (__sfp_handle_exceptions): Handle FP_EX_DENORM.
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Handle
FP_EX_DENORM. Store result to volatile location after SSE division
to close interrupt window. Remove unneeded fwait after x87
division since interrupt window will be closed by emitted fstp.
From-SVN: r204540
Mike Stump [Thu, 7 Nov 2013 19:35:03 +0000 (19:35 +0000)]
pdp11.c: Include dbxout.h.
* config/pdp11/pdp11.c: Include dbxout.h.
* config/picochip/picochip.c: Likewise.
From-SVN: r204539
Cong Hou [Thu, 7 Nov 2013 19:29:45 +0000 (14:29 -0500)]
re PR tree-optimization/56764 (vect_prune_runtime_alias_test_list not smart enough)
2013-11-07 Cong Hou <congh@google.com>
PR tree-optimization/56764
* tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
Combine alias checks if it is possible to amortize the runtime
overhead. Return the number of alias checks after merging.
* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
Use the function vect_create_cond_for_alias_checks () to check
the number of alias checks.
2013-11-07 Cong Hou <congh@google.com>
* gcc.dg/vect/vect-alias-check.c: New.
From-SVN: r204538