Commit Graph

108642 Commits

Author SHA1 Message Date
Nathan Froyd d6a3d62b5f alpha.c (alpha_init_builtins): Call build_function_type_list instead of build_function_type.
* config/alpha/alpha.c (alpha_init_builtins): Call
	build_function_type_list instead of build_function_type.

From-SVN: r173316
2011-05-03 15:43:49 +00:00
Nathan Froyd de530b8638 xtensa.c (xtensa_init_builtins): Call build_function_type_list instead of build_function_type.
* config/xtensa/xtensa.c (xtensa_init_builtins): Call
	build_function_type_list instead of build_function_type.

From-SVN: r173315
2011-05-03 15:43:00 +00:00
Nathan Froyd baeec5f2d8 i2000.c (iq2000_init_builtins): Call build_function_type_list instead of build_function_type.
* config/iq2000/i2000.c (iq2000_init_builtins): Call
	build_function_type_list instead of build_function_type.
	Delete `endlink' variable.

From-SVN: r173314
2011-05-03 15:40:26 +00:00
Nathan Froyd c19afe5204 avr.c (avr_init_builtins): Call build_function_type_list instead of build_function_type.
* config/avr/avr.c (avr_init_builtins): Call
	build_function_type_list instead of build_function_type.

From-SVN: r173313
2011-05-03 15:39:30 +00:00
Nathan Froyd a341df0a0d picochip.c (picochip_init_builtins): Call build_function_type_list instead of build_function_type.
* config/picochip/picochip.c (picochip_init_builtins): Call
	build_function_type_list instead of build_function_type.
	Delete `endlink' variable.

From-SVN: r173312
2011-05-03 15:37:53 +00:00
Nathan Froyd 2102b1e156 bfin.c (bfin_init_builtins): Call build_function_type_list instead of build_function_type.
* config/bfin/bfin.c (bfin_init_builtins): Call
	build_function_type_list instead of build_function_type.

From-SVN: r173311
2011-05-03 15:37:03 +00:00
Stuart Henderson 9f1112095c re PR target/39768 (internal compiler error: RTL check: expected code 'const_int', have 'reg' in gen_rotlsi3, at config/bfin/bfin.md:1616)
2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>

        From Bernd Schmidt
        * config/bfin/bfin.md (rotrsi, rotlsi): Don't take INTVAL of anything
        that's not CONST_INT.  Seemingly redundant check is due to PR39768.

From-SVN: r173310
2011-05-03 15:09:19 +00:00
Paolo Carlini 0ecca7a6a6 re PR libstdc++/48750 (for_each_template_random_access_ed has unbalanced new/delete[])
2011-05-03  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/48750
	* include/parallel/multiway_merge.h: Run _ValueType destructors.
	* include/parallel/multiway_mergesort.h: Likewise.
	* include/parallel/quicksort.h: Likewise.
	* include/parallel/random_shuffle.h: Likewise.
	* include/parallel/partial_sum.h: Likewise.
	* include/parallel/losertree.h: Run destructors; minor tweaks.
	* include/parallel/par_loop.h: Run destructors, fix memory
	allocations and deallocations.
	* testsuite/26_numerics/accumulate/48750.cc: New.

	* testsuite/ext/profile/mutex_extensions_neg.cc: Do not run in
	parallel-mode to avoid spurious multiple errors.

From-SVN: r173309
2011-05-03 14:20:45 +00:00
Stuart Henderson 7071d0648c 2011-05-03 Stuart Henderson <shenders@gcc.gnu.org>
From Jie Zhang:
	* config/bfin/uclinux.h (LINK_GCC_C_SEQUENCE_SPEC): Make sure
	libbffastfp overrides libgcc when -mfast-fp.

From-SVN: r173308
2011-05-03 14:19:43 +00:00
Stuart Henderson 44fb48ef0b Originally from Bernd Schmidt
2011-05-03  Stuart Henderson <shenders@gcc.gnu.org>

        Originally from Bernd Schmidt
        * config/bfin/uclinux.h (SUBTARGET_FDPIC_NOT_SUPPORTED): New macro.
        * config/bfin/bfin.c (override_options): Test it and error if
        TARGET_FDPIC.

From-SVN: r173307
2011-05-03 13:57:15 +00:00
Stuart Henderson 1a3a9152b2 Originally From Bernd Schmidt
2011-05-03  Stuart Henderson  <shenders@gcc.gnu.org>
   
        Originally From Bernd Schmidt
        * config/bfin/bfin.c (override_options): Disable -fstack-limit for
        FD-PIC.

From-SVN: r173306
2011-05-03 13:47:07 +00:00
Jeff Law 7134c090d2 tree-ssa-threadupdate.c (THREAD_TARGET): define.
* tree-ssa-threadupdate.c (THREAD_TARGET): define.
	(remove_ctrl_stmt_and_useless_edges): Clear AUX field of outgoing edges.
	(craete_edge_and_update_destination_phis): Use THREAD_TARGET rather
	than accessing AUX field directly.  Free the AUX field before			clearing it.
	(thread_block, thread_through_loop_header): Likewise.
	(thread_single_edge, mark_threaded_blocks): Likewise.
	(redirect_edges): Delay clearing the AUX field.  Free the AUX field.
	(register_jump_thread): Do not attempt to thread to a NULL edge.

From-SVN: r173305
2011-05-03 07:12:29 -06:00
Bernd Schmidt 2c7eebae8a function.c (init_function_start): Call decide_function_section.
* function.c (init_function_start): Call decide_function_section.
	* varasm.c (decide_function_section): New function.
	(assemble_start_function): When not using
	flag_reorder_blocks_and_partition, don't compute in_cold_section_p
	or first_function_block_is_cold.
	* rtl.h (decide_function_section): Declare.

	* gcc.target/arm/cold-lc.c: New test.

From-SVN: r173303
2011-05-03 13:08:36 +00:00
Jakub Jelinek 17038fcf96 re PR target/48774 (gcc-4.6.0 optimization regression on x86_64-unknown-linux-gnu)
PR target/48774
	* config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
	only succeed if req_mode is the same as set_mode.

	* gcc.dg/pr48774.c: New test.

From-SVN: r173301
2011-05-03 15:01:12 +02:00
Bernd Schmidt 3810076ba7 gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
* gengenrtl.c (special_rtx): PC, CC0 and RETURN are special.
	* genemit.c (gen_exp): Handle RETURN.
	* emit-rtl.c (verify_rtx_sharing): Likewise.
	(init_emit_regs): Create pc_rtx, ret_rtx and cc0_rtx specially.
	* rtl.c (copy_rtx): RETURN is shared.
	* rtl.h (enum global_rtl_index): Add GR_RETURN.
	(ret_rtx): New.
	* jump.c (redirect_exp_1): Don't use gen_rtx_RETURN.
	* config/s390/s390.c (s390_emit_epilogue): Likewise.
	* config/rx/rx.c (gen_rx_rtsd_vector): Likewise.
	* config/cris/cris.c (cris_expand_return): Likewise.
	* config/m68k/m68k.c (m68k_expand_epilogue): Likewise.
	* config/rs6000/rs6000.c (rs6000_make_savres_rtx,
	rs6000_emit_epilogue, rs6000_output_mi_thunk): Likewise.
	* config/picochip/picochip.c (picochip_expand_epilogue): Likewise.
	* config/h8300/h8300.c (h8300_push_pop, h8300_expand_epilogue):
	Likewise.
	* config/v850/v850.c (expand_epilogue): Likewise.
	* config/bfin/bfin.c (bfin_expand_call): Likewise.
	* config/arm/arm.md (epilogue): Likewise.
	* config/mn10300/mn10300.c (mn10300_expand_epilogue): Likewise.
	* config/sparc/sparc.c (sparc_struct_value_rtx): Rename ret_rtx
	variable to ret_reg.

From-SVN: r173300
2011-05-03 11:52:38 +00:00
Richard Guenther 9efdb4adb6 re PR tree-optimization/48846 (Many -O2 -flto testsuite failures with -m32 -mavx)
2011-05-03  Richard Guenther  <rguenther@suse.de>

	PR lto/48846
	* lto-streamer-in.c (unpack_ts_decl_common_value_fields):
	Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
	* lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.

From-SVN: r173298
2011-05-03 10:18:29 +00:00
Richard Guenther 60a45536f1 c-decl.c (grokdeclarator): Instead of looking at TREE_OVERFLOW check if the constant fits in the index type.
2011-05-03  Richard Guenther  <rguenther@suse.de>

	* c-decl.c (grokdeclarator): Instead of looking at
	TREE_OVERFLOW check if the constant fits in the index type.

	* gcc.dg/large-size-array-5.c: New testcase.

From-SVN: r173297
2011-05-03 08:48:00 +00:00
Richard Sandiford 539d6b4aec vect-strided-u16-i3.c: New test.
gcc/testsuite/
	* gcc.dg/vect/vect-strided-u16-i3.c: New test.

From-SVN: r173296
2011-05-03 07:51:13 +00:00
Richard Sandiford 9afa03618c target-supports.exp (check_effective_target_vect_strided): Replace with...
gcc/testsuite/
	* lib/target-supports.exp (check_effective_target_vect_strided):
	Replace with...
	(check_effective_target_vect_strided2)
	(check_effective_target_vect_strided3)
	(check_effective_target_vect_strided4)
	(check_effective_target_vect_strided8): ...these new functions.

	* gcc.dg/vect/O3-pr39675-2.c: Update accordingly.
	* gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c: Likewise.
	* gcc.dg/vect/fast-math-slp-27.c: Likewise.
	* gcc.dg/vect/if-cvt-stores-vect-ifcvt-18.c: Likewise.
	* gcc.dg/vect/pr37539.c: Likewise.
	* gcc.dg/vect/slp-11a.c: Likewise.
	* gcc.dg/vect/slp-11b.c: Likewise.
	* gcc.dg/vect/slp-11c.c: Likewise.
	* gcc.dg/vect/slp-12a.c: Likewise.
	* gcc.dg/vect/slp-12b.c: Likewise.
	* gcc.dg/vect/slp-18.c: Likewise.
	* gcc.dg/vect/slp-19a.c: Likewise.
	* gcc.dg/vect/slp-19b.c: Likewise.
	* gcc.dg/vect/slp-21.c: Likewise.
	* gcc.dg/vect/slp-23.c: Likewise.
	* gcc.dg/vect/vect-cselim-1.c: Likewise.

	* gcc.dg/vect/fast-math-vect-complex-3.c: Use vect_stridedN
	instead of vect_interleave && vect_extract_even_odd.
	* gcc.dg/vect/no-scevccp-outer-10a.c: Likewise.
	* gcc.dg/vect/no-scevccp-outer-10b.c: Likewise.
	* gcc.dg/vect/no-scevccp-outer-20.c: Likewise.
	* gcc.dg/vect/vect-1.c: Likewise.
	* gcc.dg/vect/vect-10.c: Likewise.
	* gcc.dg/vect/vect-98.c: Likewise.
	* gcc.dg/vect/vect-107.c: Likewise.
	* gcc.dg/vect/vect-strided-a-mult.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u16-i2.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u16-i4.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u16-mult.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u32-mult.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u8-i2-gap.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u8-i8-gap2.c: Likewise.
	* gcc.dg/vect/vect-strided-a-u8-i8-gap7.c: Likewise.
	* gcc.dg/vect/vect-strided-float.c: Likewise.
	* gcc.dg/vect/vect-strided-mult-char-ls.c: Likewise.
	* gcc.dg/vect/vect-strided-mult.c: Likewise.
	* gcc.dg/vect/vect-strided-same-dr.c: Likewise.
	* gcc.dg/vect/vect-strided-u16-i2.c: Likewise.
	* gcc.dg/vect/vect-strided-u16-i4.c: Likewise.
	* gcc.dg/vect/vect-strided-u32-i4.c: Likewise.
	* gcc.dg/vect/vect-strided-u32-i8.c: Likewise.
	* gcc.dg/vect/vect-strided-u32-mult.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i2-gap.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i2.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i8-gap2.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i8-gap4.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i8-gap7.c: Likewise.
	* gcc.dg/vect/vect-strided-u8-i8.c: Likewise.
	* gcc.dg/vect/vect-vfa-03.c: Likewise.

	* gcc.dg/vect/no-scevccp-outer-18.c: Add vect_stridedN to the
	target condition.
	* gcc.dg/vect/pr30843.c: Likewise.
	* gcc.dg/vect/pr33866.c: Likewise.
	* gcc.dg/vect/slp-reduc-6.c: Likewise.
	* gcc.dg/vect/vect-strided-store-a-u8-i2.c: Likewise.
	* gcc.dg/vect/vect-strided-store-u16-i4.c: Likewise.
	* gcc.dg/vect/vect-strided-store-u32-i2.c: Likewise.

From-SVN: r173295
2011-05-03 07:49:46 +00:00
Richard Sandiford f82c640a50 slp-11.c: Split into...
gcc/testsuite/
	* gcc.dg/vect/slp-11.c: Split into...
	* gcc.dg/vect/slp-11a.c, gcc.dg/vect/slp-11b.c,
	gcc.dg/vect/slp-11c.c: ...these tests.
	* gcc.dg/vect/slp-12a.c: Split 4-stride loop into...
	* gcc.dg/vect/slp-12c.c: ...this new test.
	* gcc.dg/vect/slp-19.c: Split into...
	* gcc.dg/vect/slp-19a.c, gcc.dg/vect/slp-19b.c,
	gcc.dg/vect/slp-19c.c: ...these new tests.

From-SVN: r173294
2011-05-03 07:49:14 +00:00
Richard Sandiford 21a74828cc gcc/testsuite/
* lib/target-supports.exp
	(check_effective_target_vect_extract_even_odd_wide): Delete.
	(check_effective_target_vect_strided_wide): Likewise.
	* gcc.dg/vect/O3-pr39675-2.c: Use the non-wide versions instead.
	* gcc.dg/vect/fast-math-pr35982.c: Likewise.
	* gcc.dg/vect/fast-math-vect-complex-3.c: Likewise.
	* gcc.dg/vect/pr37539.c: Likewise.
	* gcc.dg/vect/slp-11.c: Likewise.
	* gcc.dg/vect/slp-12a.c: Likewise.
	* gcc.dg/vect/slp-12b.c: Likewise.
	* gcc.dg/vect/slp-19.c: Likewise.
	* gcc.dg/vect/slp-23.c: Likewise.
	* gcc.dg/vect/vect-1.c: Likewise.
	* gcc.dg/vect/vect-98.c: Likewise.
	* gcc.dg/vect/vect-107.c: Likewise.
	* gcc.dg/vect/vect-strided-float.c: Likewise.

From-SVN: r173293
2011-05-03 07:47:31 +00:00
Richard Sandiford 3188ed59db neon.md (vec_load_lanes<mode><mode>): New expanders,
gcc/
	* config/arm/neon.md (vec_load_lanes<mode><mode>): New expanders,
	(vec_store_lanes<mode><mode>): Likewise.

From-SVN: r173292
2011-05-03 07:47:12 +00:00
Richard Sandiford 272c6793a0 md.texi (vec_load_lanes, [...]): Document.
gcc/
	* doc/md.texi (vec_load_lanes, vec_store_lanes): Document.
	* optabs.h (COI_vec_load_lanes, COI_vec_store_lanes): New
	convert_optab_index values.
	(vec_load_lanes_optab, vec_store_lanes_optab): New convert optabs.
	* genopinit.c (optabs): Initialize the new optabs.
	* internal-fn.def (LOAD_LANES, STORE_LANES): New internal functions.
	* internal-fn.c (get_multi_vector_move, expand_LOAD_LANES)
	(expand_STORE_LANES): New functions.
	* tree.h (build_array_type_nelts): Declare.
	* tree.c (build_array_type_nelts): New function.
	* tree-vectorizer.h (vect_model_store_cost): Add a bool argument.
	(vect_model_load_cost): Likewise.
	(vect_store_lanes_supported, vect_load_lanes_supported)
	(vect_record_strided_load_vectors): Declare.
	* tree-vect-data-refs.c (vect_lanes_optab_supported_p)
	(vect_store_lanes_supported, vect_load_lanes_supported): New functions.
	(vect_transform_strided_load): Split out statement recording into...
	(vect_record_strided_load_vectors): ...this new function.
	* tree-vect-stmts.c (create_vector_array, read_vector_array)
	(write_vector_array, create_array_ref): New functions.
	(vect_model_store_cost): Add store_lanes_p argument.
	(vect_model_load_cost): Add load_lanes_p argument.
	(vectorizable_store): Try to use store-lanes functions for
	interleaved stores.
	(vectorizable_load): Likewise load-lanes and loads.
	* tree-vect-slp.c (vect_get_and_check_slp_defs): Update call
	to vect_model_store_cost.
	(vect_build_slp_tree): Likewise vect_model_load_cost.

From-SVN: r173291
2011-05-03 07:46:54 +00:00
Richard Sandiford 0f6d54f720 hooks.h (hook_bool_mode_uhwi_false): Declare.
gcc/
	* hooks.h (hook_bool_mode_uhwi_false): Declare.
	* hooks.c (hook_bool_mode_uhwi_false): New function.
	* target.def (array_mode_supported_p): New hook.
	* doc/tm.texi.in (TARGET_ARRAY_MODE_SUPPORTED_P): Add @hook.
	* doc/tm.texi: Regenerate.
	* stor-layout.c (mode_for_array): New function.
	(layout_type): Use it.
	* config/arm/arm.c (arm_array_mode_supported_p): New function.
	(TARGET_ARRAY_MODE_SUPPORTED_P): Define.

From-SVN: r173290
2011-05-03 07:46:10 +00:00
Eric Botcazou b15eacc7da re PR target/48723 (ICE on function returning structure with -fstack-check on corei7-avx)
PR target/48723
	* config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
	for -fstack-check if the size to allocate is negative.

From-SVN: r173288
2011-05-03 07:20:01 +00:00
Steven G. Kargl 5a17346ae5 re PR fortran/48720 (quad precision literals do not work)
2011-05-02  Steven G. Kargl  <kargl@gcc.gnu.org>

    PR fortran/48720
    * gfortran.texi: Document the 'Q' exponent-letter extension.
    * invoke.texi: Document -Wreal-q-constant.
    * lang.opt: Add -Wreal-q-constant option.
    * gfortran.h: Add warn_real_q_constant to option struct.
    * primary.c (match_real_constant):  Use it.  Accept 'Q' as
    exponent-letter for REAL(16) real-literal-constant with a
    fallback to REAL(10) or error if REAL(10) is not available.
    * options.c (gfc_init_options, set_Wall) Set it.
    (gfc_handle_option): Handle new option.

From-SVN: r173285
2011-05-03 01:23:46 +00:00
GCC Administrator 591d488766 Daily bump.
From-SVN: r173284
2011-05-03 00:19:32 +00:00
Jonathan Wakely 0f88da8d14 functional (bind): Remove from overload set when first argument type might be a socket file descriptor.
2011-05-03  Jonathan Wakely  <jwakely.gcc@gmail.com>

	* include/std/functional (bind): Remove from overload set when first
	argument type might be a socket file descriptor.
	* testsuite/20_util/bind/socket.cc: New.

From-SVN: r173279
2011-05-03 01:03:38 +01:00
Jonathan Wakely fd8ac087e6 re PR libstdc++/48848 ([C++0x] std::valarray<T> functions missing)
2011-05-03  Jonathan Wakely  <jwakely.gcc@gmail.com>

	PR libstdc++/48848
	* doc/xml/manual/status_cxx200x.xml: Update valarray status.
	* doc/html/*: Regenerate.

From-SVN: r173278
2011-05-03 00:46:24 +01:00
Lawrence Crowl 575bfb0052 Upgrade the utility of timevars.
Index: gcc/ChangeLog

2011-04-27  Lawrence Crowl  <crowl@google.com>

	* timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
	(timevar_cond_start): New for starting a timer only when it is not
	already running.
	(timevar_cond_stop): New for stopping a timer when it was not already
	running.

	* timevar.c (timevar_stop): Enable start/stop timers to start again.
	(timevar_cond_start): New as above.
	(timevar_cond_stop): New as above.

	* timevar.def: Add start/stop timers for compiler phases,
	TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
	TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
	and TV_PHASE_FINALIZE.
	Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
	Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
	TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
	Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
	Make unused TV_OVERLOAD into a start/stop timer.

	Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
	Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
	to indicate that they are start/stop timers.

	* toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
	Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
	Move initialization to do_compile.
	(do_compile): Add initialization from above.
	Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.

	* c-decl.c (c_write_global_declarations): Add start/stop of
	TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.

	* c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
	or TV_PARSE_INLINE, as appropriate.
	(c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
	(c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.

Index: gcc/cp/ChangeLog

2011-04-27  Lawrence Crowl  <crowl@google.com>

	* decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
	(poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
	Change TV_NAME_LOOKUP to start/stop.
	(define_label): Refactor timevar calls out to a wrapper function.
	Change TV_NAME_LOOKUP to start/stop.
	(xref_tag): Likewise.
	(lookup_label): Refactor timevar calls out to a wrapper function.
	Change TV_NAME_LOOKUP to start_cond/stop_cond.

        * pt.c: (instantiate_class_template): Add a wrapper to push/pop new
	TV_TEMPLATE_INST.
	(instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
	(lookup_template_class): Refactor timevar calls out to a wrapper
	function.  Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
	(instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.

	* name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
	(poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
	(push_namespace): Likewise.
	(pop_nested_namespace): Likewise.
	(pushdecl_namespace_level): Likewise.
	(store_class_bindings): Likewise.
	(push_to_top_level): Likewise.
	(identifier_type_value): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start/stop.
	(find_binding): Likewise.
	(push_using_decl): Likewise.
	(lookup_arg_dependent): Likewise.
	(push_using_directive): Likewise.
	(qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
	to plain code.  Change TV_NAME_LOOKUP to start/stop.
	(lookup_type_current_level): Likewise.  Refactor inner return to
	break.
	(pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
	code.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
	(pushdecl_top_level_1): Likewise.
	(lookup_using_namespace): Likewise.
	(pushdecl_with_scope): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
	(push_overloaded_decl): Likewise.
	(push_class_level_binding): Likewise.
	(namespace_binding): Likewise.
	(set_namespace_binding): Likewise.
	(supplement_binding): Likewise.
	(unqualified_namespace_lookup): Likewise.
	(lookup_name_real): Likewise.
	(lookup_type_scope): Likewise.
	(namespace_ancestor): Likewise.
	(lookup_name_innermost_nonclass_level): Likewise.
	(pushtag): Likewise.
	(pop_from_top_level): Likewise.
	(pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Wrap long
	lines.
	(add_using_namespace): Refactor timevar calls out to a wrapper
	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Bypass
	wrapper on call to self.

	* decl2.c: (cp_write_global_declarations):  Add start/stop of
	new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
	Remove push/pop calls to TV_VARCONST.

	* parser.c: Add include of "timevar.h".
	(cp_parser_explicit_instantiation): Add push/pop calls to
	TV_TEMPLATE_INST.
	(cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
	(cp_parser_class_specifier): Add wrapper to add push/pop calls to
	TV_PARSE_STRUCT.
	(cp_parser_function_definition_from_specifiers_and_declarator): Add
	push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
	(cp_parser_late_parsing_for_member):  Add push/pop calls to
	new TV_PARSE_INMETH.

	* call.c: Add include of "timevar.h".
        (convert_class_to_reference): Wrap and add push/pop calls to 
	TV_OVERLOAD.
	(build_op_call): Likewise.
	(build_conditional_expr): Likewise.
	(build_new_op): Likewise.
	(build_new_method_call): Likewise.
        (build_user_type_conversion): Reorganize to single return and add
	push/pop calls to TV_OVERLOAD.
        (perform_overload_resolution): Likewise.

	* Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).

From-SVN: r173277
2011-05-02 22:19:48 +00:00
Jason Merrill 9c69dcea0d tree.c (build_vec_init_expr): Take complain parm.
* tree.c (build_vec_init_expr): Take complain parm.
	(build_vec_init_elt): Likewise.  Free arg vector.
	(diagnose_non_constexpr_vec_init, build_array_copy): Adjust.
	* cp-tree.h (VEC_INIT_EXPR_SLOT): Use VEC_INIT_EXPR_CHECK.
	(VEC_INIT_EXPR_INIT): Likewise.
	Adjust build_vec_init_expr declaration.
	* init.c (perform_member_init): Adjust.

From-SVN: r173275
2011-05-02 18:00:16 -04:00
Jason Merrill b73a470455 revert: re PR c++/40975 (ICE in copy_tree_r on array new)
Revert:
	PR c++/40975
	* cp-tree.def (VEC_INIT_EXPR): Add third operand.
	* cp-tree.h (VEC_INIT_EXPR_NELTS): New.
	* cp-gimplify.c (cp_gimplify_expr) [VEC_INIT_EXPR]: Handle it.
	* tree.c (build_vec_init_expr): Handle getting pointer/nelts.
	(build_vec_init_elt): Don't expect an array type.
	(build_array_copy): Adjust.
	* init.c (perform_member_init): Adjust.
	(build_new_1): Use build_vec_init_expr.

From-SVN: r173274
2011-05-02 18:00:07 -04:00
Jason Merrill 3533b943d1 re PR c++/40975 (ICE in copy_tree_r on array new)
PR c++/40975
	* tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.

From-SVN: r173273
2011-05-02 17:59:57 -04:00
Jason Merrill 0a2cdfe6fd re PR c++/48834 (-fno-exceptions causes wrong code generation on C++ code)
PR c++/48834
	* tree.c (build_vec_init_expr): Set TREE_SIDE_EFFECTS.
	Protect an explicit target.

From-SVN: r173272
2011-05-02 17:59:49 -04:00
Simon Martin 2609a0ce53 re PR c/35445 (ICE with conflicting declarations)
gcc/

2011-05-02  Simon Martin  <simartin@users.sourceforge.net>

    PR c/35445
    * c-decl.c (finish_decl): Only create a composite if the types are
    compatible.

gcc/testsuite/

2011-05-02  Simon Martin  <simartin@users.sourceforge.net>

    PR c/35445
    * gcc.dg/pr35445.c: New test.

From-SVN: r173269
2011-05-02 20:13:08 +00:00
Uros Bizjak 14dccaf069 mmx.md (*movv2sf_internal_rex64): Fix %vmovlps template.
* config/i386/mmx.md (*movv2sf_internal_rex64): Fix %vmovlps template.
	(*movv2sf_internal): Ditto.

From-SVN: r173267
2011-05-02 21:28:05 +02:00
Joseph Myers 6b0e4cbb42 fr30-protos.h (Mmode): Don't define.
* config/fr30/fr30-protos.h (Mmode): Don't define.
	* config/m32r/m32r-protos.h (Mmode): Don't define.  Expand
	definition where used.
	* config/mn10300/mn10300-protos.h (Mmode, Cstar, Rclas): Don't
	define.  Expand definitions where used.
	* config/rx/rx-protos.h (Mmode, Fargs, Rcode): Don't define.
	Expand definitions where used.
	* config/rx/rx.c (rx_is_legitimate_address, rx_function_arg_size,
	rx_function_arg, rx_function_arg_advance,
	rx_function_arg_boundary): Expand definitions of those macros.
	* config/v850/v850-protos.h (Mmode): Don't define.  Expand
	definition where used.

From-SVN: r173266
2011-05-02 20:03:57 +01:00
Uros Bizjak 4e938ce6e7 mmx.md (*mov<mode>_internal_rex64): Use %vmovq for reg<->xmm moves.
* config/i386/mmx.md (*mov<mode>_internal_rex64): Use %vmovq for
	reg<->xmm moves.
	(*mov<mode>_internal): Merge with *mov<mode>_internal_avx.
	(*movv2sf_internal_rex64): Use %vmovq for reg<->xmm moves.  Merge
	with *movv2sf_internal_rex64_avx.
	(*movv2sf_internal): Merge with *movv2sf_internal_avx.
	* config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
	Use %v prefix in insn mnemonic to handle TARGET_AVX.
	(*movdi_internal): Add "isa" attribute.  Use "maybe_vex" instead of
	"vex" in "prefix" attribute calculation.
	(*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.

From-SVN: r173265
2011-05-02 20:58:32 +02:00
Jason Merrill 9257f35f7b re PR c++/48446 (internal compiler error: in gimplify_var_or_parm_decl, at gimplify.c:1946)
PR c++/48446
	* decl.c (stabilize_save_expr_r, stabilize_vla_size): New.
	(compute_array_index_type): Revert earlier 48446 changes.
	(grokdeclarator): Use stabilize_vla_size.

From-SVN: r173264
2011-05-02 14:38:44 -04:00
Dmitry Gorbachev 6fb380f708 parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE instead of inappropriate zero values.
* parser.c (cp_parser_init_declarator): Set pushed_scope to NULL_TREE
	instead of inappropriate zero values.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>

From-SVN: r173263
2011-05-02 17:06:49 +00:00
Paolo Carlini 481ae741a8 2011-05-02 Paolo Carlini <paolo.carlini@oracle.com>
Tweak last ChangeLog entry.

From-SVN: r173262
2011-05-02 17:05:51 +00:00
Stuart Henderson 36019c19aa re PR target/47951 (web.c:union_match_dups segmentation fault for bfin)
2011-05-02  Stuart Henderson  <shenders@gcc.gnu.org>

        PR target/47951
        * config/bfin/bfin.md (loop_end): Use matching constraints to ensure
        inputs match the output.

From-SVN: r173261
2011-05-02 17:01:01 +00:00
Andreas Schwab f69ea688b0 re PR target/47955 (gcc.dg/stack-usage-1.c fails on m68k-linux)
PR target/47955
* gcc/config/m68k/m68k.c (m68k_expand_prologue): Set
current_function_static_stack_size.

From-SVN: r173260
2011-05-02 16:58:32 +00:00
Jan Hubicka c33406f5b1 lto-streamer.c (lto_streamer_cache_insert_1, [...]): Use pointer map instead of hashtable.
* lto-streamer.c (lto_streamer_cache_insert_1,
	lto_streamer_cache_lookup, lto_streamer_cache_create,
	lto_streamer_cache_delete): Use pointer map instead of hashtable.
	* lto-streamer.h (lto_streamer_cache_d): Turn node_map into pointer_map.

From-SVN: r173259
2011-05-02 16:44:04 +00:00
Ollie Wild 95c952c532 sso_string_base.h (__sso_string_base<>::_M_construct): Fix unqualified lookup.
* include/ext/sso_string_base.h (__sso_string_base<>::_M_construct):
	Fix unqualified lookup.
	(__sso_string_base<>::_M_construct): Likewise.
	(__sso_string_base<>::_M_construct): Likewise.
	(__sso_string_base<>::_M_assign): Likewise.
	(__sso_string_base<>::_M_reserve): Likewise.
	(__sso_string_base<>::_M_mutate): Likewise.
	(__sso_string_base<>::_M_erase): Likewise.
	* include/ext/vstring.h (__versa_string<>::replace): Likewise.
	(__versa_string<>::compare): Likewise.
	* include/ext/vstring.tcc (__versa_string<>::compare): Likewise.
	(__versa_string<>::compare): Likewise.
	(__versa_string<>::compare): Likewise.
	(__versa_string<>::compare): Likewise.
	(__versa_string<>::compare): Likewise.

From-SVN: r173257
2011-05-02 16:25:14 +00:00
Joseph Myers 47c94d21e4 gcc_update (gcc/config/m68k/m68k-tables.opt): New dependencies.
contrib:
	* gcc_update (gcc/config/m68k/m68k-tables.opt): New dependencies.

gcc:
	* config/m68k/genopt.sh, config/m68k/m68k-isas.def,
	config/m68k/m68k-microarchs.def, config/m68k/m68k-opts.h,
	config/m68k/t-opts: New files.
	* config/m68k/m68k-tables.opt: New file (generated).
	* config.gcc (fido-*-*, m68k-*-*): Add m68k/m68k-tables.opt to
	extra_options and m68k/t-opts to tmake_file.
	* config/m68k/m68k.c (m68k_library_id_string): More to m68k.opt.
	(all_isas): Initialize using m68k-isas.def.
	(all_microarchs): Initialize using m68k-microarchs.def.
	(m68k_find_selection): Remove.
	(m68k_handle_option): Don't assert that global structures are in
	use.  Use error_at.  Access variables via opts pointer.  Don't
	handle -march=, -mcpu= and -mtune= here.  Set gcc_options fields
	directly for -m68020-40 and -m68020-60.
	(m68k_option_override): Set m68k_arch_entry, m68k_cpu_entry and
	m68k_tune_entry here.
	* config/m68k/m68k.h (enum uarch_type, enum target_device): Move
	to m68k-opts.h.
	(m68k_library_id_string): Remove declaration.
	* config/m68k/m68k.opt (config/m68k/m68k-opts.h): New
	HeaderInclude.
	(m68k_library_id_string): New Variable.
	(march=, mcpu=, mtune=): Use Enum and Var.

From-SVN: r173256
2011-05-02 16:42:39 +01:00
Richard Guenther e562bf36b6 varasm.c (output_constructor_regular_field): Compute zero-based index with double-ints.
2011-05-02  Richard Guenther  <rguenther@suse.de>

	* varasm.c (output_constructor_regular_field): Compute zero-based
	index with double-ints.  Make sure to ICE instead of producing
	wrong code.
	* cgraph.c (cgraph_add_thunk): Do not create new tree nodes
	in asserts.  Properly use a signed type.

From-SVN: r173255
2011-05-02 15:22:54 +00:00
Uros Bizjak 6bec6c9897 sse.md (V): New mode iterator.
* config/i386/sse.md (V): New mode iterator.
	(V_128): Rename from SSEMODE.  Make V2DF mode conditional on
	TARGET_SSE2.
	(V_256): Rename from AVX256MODE.
	(VF): Make V4SF mode unconditional.  Add TARGET_SSE instruction
	condition to all users.
	(VF1): Ditto.
	(VF2): Make V2DF mode unconditional.  Add TARGET_SSE2 instruction
	condition to all users.
	(VF_128): Make V4SF mode unconditional.
	(VF_256): Rename from AVX256MODEF2P.
	(VI4F_128): Rename from SSEMODE4S.
	(VI8F_128): Rename from SSEMODE2D.
	(VI4F_256): Rename from AVX256MODE8P.
	(VI8F_256): Rename from AVX256MODE4P.
	(avxsizesuffix): Add V16HI, V4DI, V8HI and V2DI modes.
	(ssescalarmodesuffix): Remove SF and DF modes.
	(SSEMODE124): Remove.
	(SSEMODE1248): Ditto.
	(SSEMODEF2P): Ditto.
	(AVXMODEF2P): Ditto.
	(AVXMODEFDP): Ditto.
	(AVXMODEFSP): Ditto.
	(VEC_EXTRACT_MODE): Make V16QI, V8HI, V4SI, V2DI, V4SF and V2DF modes
	unconditional.
	(VEC_EXTRACT_EVENODD_MODE): Rename from SSEMODE_EO.  Make V4SF mode
	unconditional.
	(xop_pcmov_<mode><avxsizesuffix>): Merge from xop_pcmov_<mode> and
	xop_pcmov_<mode>256.  Use V mode iterator.

	Adjust RTX patterns globally for renamed mode attributes.

From-SVN: r173253
2011-05-02 16:10:05 +02:00
Ulrich Weigand 2dfdcb4beb haifa-sched.c (sched_emit_insn): Emit insn before first non-scheduled insn.
* haifa-sched.c (sched_emit_insn): Emit insn before first
	non-scheduled insn.  Inform back-end about new insn.  Add
	new insn to scheduled_insns list.

From-SVN: r173251
2011-05-02 13:16:55 +00:00
Richard Guenther 90bc462321 re PR tree-optimization/48822 (G++ gets stucks and never finishes compilation when enabling -O2/3 optimization options.)
2011-05-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/48822
	* tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
	(process_scc): Indicate which iteration we start.

	* gcc.dg/torture/pr48822.c: New testcase.

From-SVN: r173250
2011-05-02 13:11:27 +00:00