Tom de Vries
b4e48861df
Handle GIMPLE_ASSIGNs with different vuse in gimple_equal_p
...
2013-11-14 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural
equality for GIMPLE_ASSIGN.
* gcc.dg/tail-merge-store.c: New test.
From-SVN: r204767
2013-11-14 00:10:42 +00:00
Tom de Vries
b6366520fa
Factor out gimple_operand_equal_value_p from gimple_equal_p
...
2013-11-14 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new
function out of ...
(gimple_equal_p): ... here.
From-SVN: r204766
2013-11-14 00:10:33 +00:00
Tom de Vries
d5ae1c255d
Add is_tm_ending
...
2013-11-14 Tom de Vries <tom@codesourcery.com>
* trans-mem.c (is_tm_ending): New function.
* gimple.h (is_tm_ending): Declare.
* tree-ssa-tail-merge.c (gimple_equal_p): Remove test on
BUILT_IN_TM_COMMIT.
(find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl.
From-SVN: r204765
2013-11-14 00:10:24 +00:00
Tom de Vries
2f1aee044c
Simplify code in gimple_equal_p
...
2013-11-14 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable.
From-SVN: r204764
2013-11-14 00:10:13 +00:00
Andrew Macleod
5be5c23841
gimple-walk.h: New File.
...
* gimple-walk.h: New File. Relocate prototypes from gimple.h.
(struct walk_stmt_info): Relocate here from gimple.h.
* gimple-iterator.h: New File. Relocate prototypes from gimple.h.
(struct gimple_stmt_iterator_d): Relocate here from gimple.h.
(gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
* gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
(gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
(struct walk_stmt_info): Move to gimple-walk.h.
(gimple_seq_set_location): Move to gimple.c
* gimple-walk.c: New File.
(walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
walk_stmt_load_store_ops): Relocate here from gimple.c.
* gimple-iterator.c: Include gimple-iterator.h.
* gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
gimple-walk.c.
(gimple_seq_set_location): Relocate from gimple.h.
* tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
* tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
* gengtype.c (open_base_files): Add gimple-iterator.h to include list.
* Makefile.in (OBJS): Add gimple-walk.o
* asan.c: Update Include list as required for gimple-iterator.h and
gimple-walk.h.
* cfgexpand.c: Likewise.
* cfgloop.c: Likewise.
* cfgloopmanip.c: Likewise.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraphunit.c: Likewise.
* gimple-fold.c: Likewise.
* gimple-low.c: Likewise.
* gimple-pretty-print.c: Likewise.
* gimple-ssa-isolate-paths.c: Likewise.
* gimple-ssa-strength-reduction.c: Likewise.
* gimple-streamer-in.c: Likewise.
* gimple-streamer-out.c: Likewise.
* gimplify.c: Likewise.
* graphite-blocking.c: Likewise.
* graphite-clast-to-gimple.c: Likewise.
* graphite-dependences.c: Likewise.
* graphite-interchange.c: Likewise.
* graphite-optimize-isl.c: Likewise.
* graphite-poly.c: Likewise.
* graphite-scop-detection.c: Likewise.
* graphite-sese-to-poly.c: Likewise.
* graphite.c: Likewise.
* ipa-inline-analysis.c: Likewise.
* ipa-profile.c: Likewise.
* ipa-prop.c: Likewise.
* ipa-pure-const.c: Likewise.
* ipa-split.c: Likewise.
* lto-streamer-in.c: Likewise.
* lto-streamer-out.c: Likewise.
* omp-low.c: Likewise.
* predict.c: Likewise.
* profile.c: Likewise.
* sese.c: Likewise.
* tracer.c: Likewise.
* trans-mem.c: Likewise.
* tree-call-cdce.c: Likewise.
* tree-cfg.c: Likewise.
* tree-cfgcleanup.c: Likewise.
* tree-complex.c: Likewise.
* tree-data-ref.c: Likewise.
* tree-dfa.c: Likewise.
* tree-eh.c: Likewise.
* tree-emutls.c: Likewise.
* tree-if-conv.c: Likewise.
* tree-inline.c: Likewise.
* tree-into-ssa.c: Likewise.
* tree-loop-distribution.c: Likewise.
* tree-nested.c: Likewise.
* tree-nrv.c: Likewise.
* tree-object-size.c: Likewise.
* tree-outof-ssa.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-ccp.c: Likewise.
* tree-ssa-coalesce.c: Likewise.
* tree-ssa-copy.c: Likewise.
* tree-ssa-copyrename.c: Likewise.
* tree-ssa-dce.c: Likewise.
* tree-ssa-dom.c: Likewise.
* tree-ssa-dse.c: Likewise.
* tree-ssa-forwprop.c: Likewise.
* tree-ssa-ifcombine.c: Likewise.
* tree-ssa-live.c: Likewise.
* tree-ssa-loop-ch.c: Likewise.
* tree-ssa-loop-im.c: Likewise.
* tree-ssa-loop-ivcanon.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.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-sink.c: Likewise.
* tree-ssa-strlen.c: Likewise.
* tree-ssa-structalias.c: Likewise.
* tree-ssa-tail-merge.c: Likewise.
* tree-ssa-ter.c: Likewise.
* tree-ssa-threadedge.c: Likewise.
* tree-ssa-threadupdate.c: Likewise.
* tree-ssa-uncprop.c: Likewise.
* tree-ssa-uninit.c: Likewise.
* tree-ssa.c: Likewise.
* tree-stdarg.c: Likewise.
* tree-switch-conversion.c: Likewise.
* 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-slp.c: Likewise.
* tree-vect-stmts.c: Likewise.
* tree-vectorizer.c: Likewise.
* tree-vrp.c: Likewise.
* tree.c: Likewise.
* tsan.c: Likewise.
* value-prof.c: Likewise.
* vtable-verify.c: Likewise.
* config/aarch64/aarch64-builtins.c: Include gimple-iterator.h.
* config/rs6000/rs6000.c: Include gimple-iterator.h and gimple-walk.h.
* testsuite/g++.dg/plugin/selfassign.c: Include gimple-iterator.h.
* testsuite/gcc.dg/plugin/selfassign.c: Likewise.
From-SVN: r204763
2013-11-13 23:54:17 +00:00
Steven Bosscher
d35e43b970
gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment fix.
...
* gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment fix.
From-SVN: r204762
2013-11-13 23:23:18 +00:00
Jeff Law
56d338c931
re PR middle-end/59119 (Segfault in -fisolate-erroneous-paths pass)
...
* PR middle-end/59119
* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): New
function, extracted from gimple_ssa_isolate_erroneous_paths.
(find_explicit_erroneous_behaviour): Similarly.
(insert_trap_and_remove_trailing_statements): Remove statements
in reverse order.
* PR middle-end/59119
* gcc.c-torture/compile/pr59119.c: New test.
From-SVN: r204760
2013-11-13 16:10:34 -07:00
Steven Bosscher
98eaa66fa5
typo fix
...
From-SVN: r204759
2013-11-13 22:58:03 +00:00
Steven Bosscher
d7b6661b55
cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
...
* cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
Make that check explicit. BB_HEAD cannot be NULL, remove check for it.
* haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before
looking at INSN_CODE.
* reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an
active_insn_p object, respect basic block boundaries.
* reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always
follows immediately after the jump table data label.
* config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise.
* config/sh/sh.c (barrier_align): Likewise. Rearrange code such
that JUMP_TABLE_DATA is not expected to be an active_insn_p object.
From-SVN: r204758
2013-11-13 22:55:49 +00:00
Peter Bergner
c3d77f3add
re PR sanitizer/59009 (libsanitizer merge from upstream r191666 breaks bootstrap on powerpc64-linux and aarch64-linux)
...
PR sanitizer/59009
* sanitizer_common/sanitizer_platform_limits_posix.cc: Temporarily
ifdef out more source.
From-SVN: r204757
2013-11-13 16:34:33 -06:00
Teresa Johnson
4c7d077736
re PR ipa/58862 (LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008)
...
2013-11-13 Teresa Johnson <tejohnson@google.com>
PR ipa/58862
* predict.c (drop_profile): Error is currently too strict.
(handle_missing_profiles): Pass call_count to drop_profile.
From-SVN: r204756
2013-11-13 21:51:44 +00:00
Teresa Johnson
51f5c118c5
re PR ipa/58862 (LTO profiledbootstrap failure: lto1: ICE in edge_badness, at ipa-inline.c:1008)
...
2013-11-13 Teresa Johnson <tejohnson@google.com>
PR ipa/58862
* ipa-inline.c (edge_badness): Fix overflow.
From-SVN: r204755
2013-11-13 21:48:59 +00:00
Vladimir Makarov
bf08fb1644
re PR rtl-optimization/59036 (Performance degradation after r204212 on 32-bit x86 targets.)
...
2013-11-13 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/59036
* ira-color.c (struct allocno_color_data): Add new members
first_thread_allocno, next_thread_allocno, thread_freq.
(sorted_copies): New static var.
(allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move
up.
(allocno_thread_conflict_p, merge_threads)
(form_threads_from_copies, form_threads_from_bucket)
(form_threads_from_colorable_allocno, init_allocno_threads): New
functions.
(bucket_allocno_compare_func): Add comparison by thread frequency
and threads.
(add_allocno_to_ordered_bucket): Rename to
add_allocno_to_ordered_colorable_bucket. Remove parameter.
(push_only_colorable): Call form_threads_from_bucket.
(color_pass): Call init_allocno_threads. Use
consideration_allocno_bitmap instead of coloring_allocno_bitmap
for nuillify allocno color data.
(ira_initiate_assign, ira_finish_assign): Allocate/free
sorted_copies.
(coalesce_allocnos): Use static sorted copies.
From-SVN: r204752
2013-11-13 18:00:43 +00:00
Jakub Jelinek
a9335ba244
passes.c (execute_todo): Don't call do_per_function if flags are zero.
...
* passes.c (execute_todo): Don't call do_per_function if
flags are zero.
(execute_one_ipa_transform_pass, execute_one_pass): Don't call
execute_function_dump if dump_file is NULL.
From-SVN: r204751
2013-11-13 18:34:29 +01:00
Marc Glisse
b62c62f4b0
re PR libstdc++/59087 (Issues including complex.h in C++11/1y mode because of C's complex.h)
...
2013-11-13 Marc Glisse <marc.glisse@inria.fr>
PR libstdc++/59087
* include/ext/pod_char_traits.h: Uglify V, I and S.
From-SVN: r204750
2013-11-13 15:47:04 +00:00
Martin Jambor
5c1e70a6ae
ira-shrinkwrap-prep-1.c: Add lp64 to target requirements.
...
2013-11-13 Martin Jambor <mjambor@suse.cz>
* gcc.dg/ira-shrinkwrap-prep-1.c: Add lp64 to target requirements.
* gcc.dg/ira-shrinkwrap-prep-2.c: Likewise.
* gcc.dg/pr10474.c: Likewise.
From-SVN: r204749
2013-11-13 16:41:39 +01:00
Martin Jambor
6f99e449db
cgraph.c (cgraph_get_create_node): Do what cgraph_get_create_real_symbol_node used to do.
...
2013-11-13 Martin Jambor <mjambor@suse.cz>
* cgraph.c (cgraph_get_create_node): Do what
cgraph_get_create_real_symbol_node used to do.
(cgraph_get_create_real_symbol_node): Removed. Changed all users to
call cgraph_get_create_node.
* cgraph.h (cgraph_get_create_real_symbol_node): Removed.
* lto-streamer-in.c (input_function): Call cgraph_get_node instead of
cgraph_get_create_node. Assert we get a node.
From-SVN: r204748
2013-11-13 16:34:47 +01:00
Tejas Belagod
0f365c102f
aarch64-simd.md (vec_extract): New.
...
2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
gcc/
* config/aarch64/aarch64-simd.md (vec_extract): New.
From-SVN: r204747
2013-11-13 15:07:27 +00:00
Tejas Belagod
d22253e5e3
aarch64-simd.md (vec_set<mode>): Add w -> w option to the constraint.
...
2013-11-13 Tejas Belagod <tejas.belagod@arm.com>
gcc/
* config/aarch64/aarch64-simd.md (vec_set<mode>): Add w -> w option to
the constraint.
From-SVN: r204746
2013-11-13 15:04:44 +00:00
Cesar Philippidis
0cbe536ed8
2013-11-13 Cesar Philippidis <cesar@codesourcery.com>
...
* lib/target-supports.exp
(check_effective_target_vect_cmdline_neeed): Add AArch64 to the list
of targets that do not need command line argument to enable SIMD.
From-SVN: r204745
2013-11-13 14:18:31 +00:00
Eric Botcazou
2ee574ba56
Remove ada/ prefix
...
From-SVN: r204743
2013-11-13 12:27:09 +00:00
Eric Botcazou
cfb9edba16
cfgexpand.c (expand_used_vars): Allocate space for partitions based on PARM_DECLs or RESULT_DECLs only if...
...
* cfgexpand.c (expand_used_vars): Allocate space for partitions based
on PARM_DECLs or RESULT_DECLs only if they are ignored for debug info
or if optimization is enabled.
* tree-ssa-coalesce.c (coalesce_ssa_name): If optimization is disabled,
require that all the names based on a PARM_DECL or a RESULT_DECL that
isn't ignored for debug info be coalesced.
From-SVN: r204742
2013-11-13 12:15:47 +00:00
Jan-Benedict Glaw
cb076acf46
c6x.c: Include "gimple-expr.h".
...
2013-11-13 Jan-Benedict Glaw <jbglaw@lug-owl.de>
* config/c6x/c6x.c: Include "gimple-expr.h".
[BR]: http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01411.html
From-SVN: r204741
2013-11-13 12:14:40 +00:00
Richard Biener
3fede97959
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
2013-11-13 11:58:12 +00:00
Marc Glisse
b0d04a5f56
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
2013-11-13 11:55:01 +00:00
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