1. 27 Nov, 2009 15 commits
    • re PR middle-end/42006 (Termination problem with -O2 and -O3) · c4ea5200
      2009-11-27  Martin Jambor  <mjambor@suse.cz>
      
      	PR middle-end/42006
      	* tree-sra.c (get_replaced_param_substitute): Call create_tmp_var
      	instead of create_tmp_var.  Set DECL_GIMPLE_REG_P to one manually
      	for vector and complex types.
      	(get_adjustment_for_base): Describe return value in the comment.
      
      	* testsuite/gcc.c-torture/execute/pr42006.c: New test.
      
      From-SVN: r154715
      Martin Jambor committed
    • stormy16-lib2.c: Arrange for separate compilation of each function. · ba964383
              * config/stormy16/stormy16-lib2.c: Arrange for separate
              compilation of each function.
              (__ffshi2): New function.
              (__stormy16_count_leading_zeros): New function.
              * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to
              compile each function into its own object file.
              (stormy16-lib2-ashlsi3.c): New stub file.
              (stormy16-lib2-ashrsi3.c): New stub file.
              (stormy16-lib2-clzhi2.c): New stub file.
              (stormy16-lib2-count-leading-zeros.c): New stub file.
              (stormy16-lib2-ctzhi2.c): New stub file.
              (stormy16-lib2-divsi3.c): New stub file.
              (stormy16-lib2-ffshi2.c): New stub file.
              (stormy16-lib2-lshrsi3.c): New stub file.
              (stormy16-lib2-modsi3.c): New stub file.
              (stormy16-lib2-parityhi2.c): New stub file.
              (stormy16-lib2-popcounthi2.c): New stub file.
              (stormy16-lib2-udivmodsi4.c): New stub file.
              (stormy16-lib2-udivsi3.c): New stub file.
              (stormy16-lib2-umodsi3.c): New stub file.
              * longlong.h (count_leading_zeros): Define macro for stormy16
              target.
              (COUNT_LEADING_ZEROS_0): Likewise.
      
      From-SVN: r154713
      Nick Clifton committed
    • re PR c++/38656 (Broken diagnostic: 'template_id_expr' not supported by pp_c_expression) · c7f06e13
      cp/
      2009-11-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/38656
      	* cxx-pretty-print.c (pp_cxx_expression): Handle TEMPLATE_ID_EXPR.
      
      testsuite/
      2009-11-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/38656
      	* g++.dg/cpp0x/error2.C: New.
      
      From-SVN: r154712
      Paolo Carlini committed
    • sse.md (vec_interleave_highv16qi, [...]): Remove expanders. · b0d49a6e
      	* config/i386/sse.md (vec_interleave_highv16qi,
      	vec_interleave_lowv16qi, vec_interleave_highv8hi,
      	vec_interleave_lowv8hi, vec_interleave_highv4si,
      	vec_interleave_lowv4si, vec_interleave_highv2di,
      	vec_interleave_lowv2di, vec_interleave_highv4sf,
      	vec_interleave_lowv4sf, vec_interleave_highv2df,
      	vec_interleave_lowv2df): Remove expanders.
      	(sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp,
      	sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw,
      	sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq):
      	Rename to their proper vec_interleave equivalent.  Update all users
      	to the new name.
      	* config/i386/i386.c, config/i386/i386.md: Update all users.
      
      From-SVN: r154711
      Richard Henderson committed
    • re PR rtl-optimization/42084 (Wrong result with -Os -fno-delete-null-pointer-checks) · 315adeda
              PR rtl-optimization/42084
              * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter,
              use it to stop walking.
              (expand_gimple_cond): Adjust call to above.
      
      testsuite/
              * gcc.dg/pr42084.c: New test.
      
      From-SVN: r154709
      Michael Matz committed
    • re PR target/41810 (Cannot build gcc: gthr-default.h:466: error: '__mutex' was… · 67c330ae
      re PR target/41810 (Cannot build gcc: gthr-default.h:466: error: '__mutex' was not declared in this scope)
      
      	PR target/41810
      	* gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED.
      	[SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use
      	__extension__ to allow cast from function pointer to object
      	pointer in C++.
      	* doc/install.texi (--enable-threads): Clarify use of Solaris
      	threads.
      
      From-SVN: r154708
      Rainer Orth committed
    • Remove support for Itanium1 (Merced) · 7400e46b
      	* config/ia64/itanium1.md: Remove.
      	* config/ia64/ia64.md: Do not include it.
      	* config/ia64/ia64.c (ia64_handle_option): Remove "itanium",
      	"itanium1", and "merced" from the processor alias table.
      	(clocks, add_cycles): Remove global variables.
      	(ia64_sched_reorder2): Don't set/use them.
      	(ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise.
      	(bundling): Likewise. Remove extra pass for MMMUL/MMSHF.
      
      From-SVN: r154707
      Steven Bosscher committed
    • s390.c (last_scheduled_insn): New variable. · 3a892e44
      2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* config/s390/s390.c (last_scheduled_insn): New variable.
      	(s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New
      	functions.
      	(s390_sched_reorder, s390_sched_variable_issue): New functions.
      	(TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks
      	defined.
      
      From-SVN: r154705
      Andreas Krebbel committed
    • re PR c++/41906 (ICE with catch(...) and -fpermissive) · d815d34e
              PR c++/41906
              * tree-eh.c (lower_catch): Stop after expanding a catch-all.
      
      testsuite/
              * g++.dg/tree-ssa/pr41906.C: New testcase.
      
      From-SVN: r154704
      Michael Matz committed
    • timevar.def (TV_LOOP_MOVE_INVARIANTS, [...]): New timevars. · b56ae8c7
      2009-11-27  Richard Guenther  <rguenther@suse.de>
      
      	* timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH,
      	TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars.
      	* loop-init.c (pass_rtl_move_loop_invariants): Use
      	TV_LOOP_MOVE_INVARIANTS.
      	(pass_rtl_unswitch): Use TV_LOOP_UNSWITCH.
      	(pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL.
      	(pass_rtl_doloop): Use TV_LOOP_DOLOOP.
      
      From-SVN: r154703
      Richard Guenther committed
    • emit-rtl.c (next_active_insn, [...]): Correct comment. · 9c517bf3
      2009-11-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
      
      	* emit-rtl.c (next_active_insn, prev_active_insn): Correct
      	comment.
      
      From-SVN: r154702
      Andreas Krebbel committed
    • i386.c (ix86_emit_restore_sse_regs_using_mov): Remove unused insn variable. · f1ed99cd
      	* config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove
      	unused insn variable.
      	* genemit.c (output_peephole2_scratches): Only declare and initialize
      	_regs_allocated if it will be ever used.
      	* cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused
      	succ_bb variable.
      	(create_empty_loop_on_edge): Remove unused freq and cnt variables.
      	* unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record
      	variable.
      
      From-SVN: r154701
      Jakub Jelinek committed
    • opts.c (decode_options): If optimize is bigger than 255, set it to 255. · e96fee3e
      	* opts.c (decode_options): If optimize is bigger than 255,
      	set it to 255.
      
      	* gcc.dg/O16384.c: New test.
      
      From-SVN: r154699
      Jakub Jelinek committed
    • re PR c++/35112 (ICE and broken diagnostic with ambiguous class name) · 85539630
      /cp
      2009-11-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/35112
      	* pt.c (print_overloaded_functions): New.
      	(print_candidates): Call the latter.
      	* parser.c (cp_parser_class_name): Do not duplicate the diagnostics
      	after the cp_parser_lookup_name call.
      
      /testsuite
      2009-11-27  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	PR c++/35112
      	* g++.dg/parse/crash53.C: New.
      	* g++.dg/parse/error17.C: Adjust, error messages are not
      	duplicated anymore.
      	* g++.dg/template/dtor7.C: Remove xfail-ed dg-bogus directives.
      
      From-SVN: r154698
      Paolo Carlini committed
    • Daily bump. · 58b9741e
      From-SVN: r154697
      GCC Administrator committed
  2. 26 Nov, 2009 25 commits
    • vperm-v4sf-1.c (dg-options): Use -msse2. · 22b9d529
      	* gcc.target/i386/vperm-v4sf-1.c (dg-options): Use -msse2.
      	* gcc.target/i386/vperm-v4sf-2.c: Require effective target ssse3.
      	* gcc.target/i386/vperm-v4si-2.c: Ditto.
      	* gcc.target/i386/vperm-v4si-2x.c: Require effective target xop.
      
      From-SVN: r154694
      Uros Bizjak committed
    • sse.md (mulv16qi3): Change back from an expander to an insn-and-split. · 08f3084b
      	* config/i386/sse.md (mulv16qi3): Change back from an expander
      	to an insn-and-split.
      	(mulv4si): Mention AVX not XOP for AVX exception.
      	(*sse2_mulv4si3): Likewise.
      	(mulv2di3): Use vmulld not vpmacsdd for XOP expansion.  Tidy.
      testsuite/
              * gcc.target/i386/xop-imul64-vector.c: Look for vpmulld not vpmacsdd.
      
      From-SVN: r154693
      Richard Henderson committed
    • re PR fortran/41807 (data statement with nested type constructors) · 5e1a89f0
      2009-11-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/41807
      	* trans-const.c (gfc_conv_const): Set se->expr to a constant on error.
      
      From-SVN: r154690
      Jerry DeLisle committed
    • cfgexpand (n_stack_vars_conflict): New static variable. · 15b83b0f
      	* cfgexpand (n_stack_vars_conflict): New static variable.
      	(triangular_index): Reduce likelyhood of overflow by performing
      	the division before the multiplication.
      	(resize_stack_vars_conflict): Call fatal_error if overflow
      	occurred in triangular_index.  Update n_stack_vars_conflict.
      
      From-SVN: r154689
      Bernd Schmidt committed
    • re PR rtl-optimization/38582 (excessive time in rename registers) · a96caf80
      	PR rtl-opt/38582
      	* regrename.c (struct du_head): New members id, conflicts,
      	hard_conflicts and cannot_rename.
      	(enum scan_actions): Remove terminate_all_read and
      	terminate_overlapping_read; add mark_all_read.
      	(scan_actions_name): Likewise.
      	(du_head_p): New typedef.  Define a vector type for it.
      	(id_to_chain): New static variable.
      	(note_sets, clear_dead_regs): Delete functions.
      	(free_chain_data): New function.
      	(merge_overlapping_regs): Simply walk the conflicts bitmap.
      	Remove argument B, all callers changed.
      	(regrename_optimize): Allocate id_to_chain.  Ignore chains that have
      	the cannot_rename bit set.  Update regno and nregs of a renamed chain.
      	Call free_chain_data when done.
      	(do_replace): Remove death notes when the renamed reg is set in the
      	last insn; add them if not.
      	(mark_conflict, note_sets_clobbers): New static function.
      	(fail_current_block, current_id, open_chains_set, live_hard_regs): New
      	static variables.
      	(scan_rtx_reg): Keep track of conflicts between chains, and between
      	chains and hard regs.  Don't terminate chains when we find a read we
      	can't handle, mark it unrenameable instead.  For terminate_write,
      	terminate chains that are written with an exact match or a superset
      	of registers.  Set fail_current_block if multi-word lifetimes are too
      	complex to handle.
      	(scan_rtx_address): Use mark_all_read instead of terminate_all_read.
      	(build_def_use): Initialize current_id, live_chains and live_hard_regs;
      	free memory for them when done.
      	Rearrange the steps so that earlyclobbers are noted before reads
      	are processed.  Add new steps to keep track of hard register lifetimes
      	outside insn operands.
      
      From-SVN: r154688
      Bernd Schmidt committed
    • re PR rtl-optimization/38582 (excessive time in rename registers) · 6bda9bdf
      	PR rtl-opt/38582
      	* regrename.c (struct du_chain): Remove member earlyclobber.
      	(scan_rtx_reg): Don't set it.  Remove argument earlyclobber,
      	all callers changed.
      	(scan_rtx): Remove argument earlyclobber, all callers changed.
      	(hide_operands, restore_operands, record_out_operands): New functions,
      	broken out of build_def_use.
      	(build_def_use): Call them as necessary.
      
      From-SVN: r154687
      Bernd Schmidt committed
    • PR c++/42026, DR 239 · c5c39ab3
      	PR c++/42026, DR 239
      	* parser.c (cp_parser_postfix_expression): A local extern also
      	prevents arg-dependent lookup.
      
      From-SVN: r154686
      Jason Merrill committed
    • add missing testsuite/ChangeLog entry · 1e1779fe
      From-SVN: r154685
      Jason Merrill committed
    • re PR fortran/41278 (internal compiler error related to matmul and transpose) · ba2335f2
      2009-11-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/41278
      	* gfortran.dg/array_function_5.f90: New test.
      
      From-SVN: r154681
      Jerry DeLisle committed
    • re PR fortran/41278 (internal compiler error related to matmul and transpose) · 4252ed2b
      2009-11-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
      
      	PR fortran/41278
      	* trans-array.c (gfc_conv_array_transpose): Delete unnecessary assert.
      
      From-SVN: r154680
      Jerry DeLisle committed
    • re PR fortran/42048 ([F03] Erroneous syntax error message on TBP call) · 2d71b918
      2009-11-26  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/42048
      	PR fortran/42167
      	* gfortran.h (gfc_is_function_return_value): New prototype.
      	* match.c (gfc_match_call): Use new function
      	'gfc_is_function_return_value'.
      	* primary.c (gfc_is_function_return_value): New function to check if a
      	symbol is the return value of an encompassing function.
      	(match_actual_arg,gfc_match_rvalue,match_variable): Use new function
      	'gfc_is_function_return_value'.
      	* resolve.c (resolve_common_blocks,resolve_actual_arglist): Ditto.
      
      2009-11-26  Janus Weil  <janus@gcc.gnu.org>
      
      	PR fortran/42048
      	PR fortran/42167
      	* gfortran.dg/select_type_10.f03: New test case.
      	* gfortran.dg/typebound_call_11.f03: Extended test case.
      
      From-SVN: r154679
      Janus Weil committed
    • utils.c (copy_type): Unshare the language-specific data and the contents of the… · 90dcfecb
      utils.c (copy_type): Unshare the language-specific data and the contents of the language-specific...
      
      	* gcc-interface/utils.c (copy_type): Unshare the language-specific data
      	and the contents of the language-specific slot if needed.
      
      From-SVN: r154678
      Eric Botcazou committed
    • trans.c (gnat_to_gnu): Set the source location of the operator on both branches… · da49a783
      trans.c (gnat_to_gnu): Set the source location of the operator on both branches of the test in the...
      
      	* gcc-interface/trans.c (gnat_to_gnu) <N_In>: Set the source location
      	of the operator on both branches of the test in the generic case.
      
      From-SVN: r154677
      Eric Botcazou committed
    • tree-ssa-dce.c (nr_walks): New variable. · a61f9cc0
      2009-11-26  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-dce.c (nr_walks): New variable.
      	(mark_aliased_reaching_defs_necessary): Adjust oracle cut-off.
      	(perform_tree_ssa_dce): Init nr_walks.
      
      From-SVN: r154676
      Richard Guenther committed
    • re PR c++/10690 ([DR 115] Even when used within typeid(), a template-id… · 6780e186
      re PR c++/10690 ([DR 115] Even when used within typeid(), a template-id generating an overload set with only one function should silently decay to a pointer to function)
      
      	PR c++/10690
      	* rtti.c (get_tinfo_decl_dynamic): Call resolve_nondeduced_context.
      
      From-SVN: r154675
      Jason Merrill committed
    • tree-eh.c (lower_eh_constructs_2): Don't add assignments below statements that can't fall thru. · 87cd4259
              * tree-eh.c (lower_eh_constructs_2): Don't add assignments
              below statements that can't fall thru.
      
      testsuite/
              * g++.dg/tree-ssa/pr41905.C: New testcase.
      
      From-SVN: r154674
      Michael Matz committed
    • builtins.c (expand_builtin_printf, [...]): Remove. · 6dc3bf56
              * builtins.c (expand_builtin_printf, expand_builtin_fprintf,
              expand_builtin_sprintf): Remove.
              (expand_builtin): Don't call them.
      
      From-SVN: r154673
      Michael Matz committed
    • tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap. · d9b99b4c
      2009-11-26  Richard Guenther  <rguenther@suse.de>
      
      	* tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap.
      
      From-SVN: r154672
      Richard Guenther committed
    • rx.c (rx_expand_epilogue): Add checks for sibcalls being used incorrectly. · 0d8f38d3
              * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls
              being used incorrectly.
              (rx_function_ok_for_sibcall): New function.  Do not allow indirect
              sibcalls, or sibcalls from interrupt functions.
              (TARGET_FUNCTION_OK_FOR_SIBCALL): Define.
              * config/rx/rx.md (sibcall): Convert to a define_expand.  Check
              for a MEM inside a MEM.
              (sibcall_value): Likewise.
              (sibcall_internal): New pattern containing old sibcall pattern.
              (sibcall_value_internal): Likewise.
      
      From-SVN: r154671
      Nick Clifton committed
    • posix-threads.cc (ParkHelper::unpark): Do not initialise result, but assign it instead. · 5d6b1bac
      	* posix-threads.cc (ParkHelper::unpark): Do not initialise result,
      	but assign it instead. Eliminates an unused variable warning when
      	the result == 0 assertion is disabled.
      
      From-SVN: r154670
      Ben Elliston committed
    • i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an optional 3rd argument to define the mode. · 0fac5151
      	* config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an
      	optional 3rd argument to define the mode.
      	* config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New.
      	(V2UDI, V4USI, V8UHI, V16UQI): New.
      	(V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI,
      	V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI,
      	V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New.
      	* config/i386/i386-modes.def: Rearrange for double-wide AVX.
      	* config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New.
      	* config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New.
      	(bdesc_args): Add the builtin definitions to match.
      	(ix86_expand_builtin): Expand them.
      	(ix86_builtin_vectorization_cost): Rename from
      	x86_builtin_vectorization_cost.
      	(ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d,
      	doublesize_vector_mode, expand_vselect, expand_vselect_vconcat,
      	expand_vec_perm_blend, expand_vec_perm_vpermil,
      	expand_vec_perm_pshufb, expand_vec_perm_1,
      	expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr,
      	expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
      	expand_vec_perm_even_odd_1, expand_vec_perm_even_odd,
      	ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst,
      	ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok,
      	ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM,
      	TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
      	* sse.md (SSEMODE_EO): New.
      	(vec_extract_even<mode>): Use SSEMODE_EO and
      	ix86_expand_vec_extract_even_odd.
      	(vec_extract_odd<mode>): Likewise.
      	(mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si,
      	vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd.
      
      testsuite/
      	* gcc.dg/vect/slp-21.c: Succeed with vect_extract_even_odd too.
      
      	* lib/target-supports.exp
      	(check_effective_target_vect_extract_even_odd): Add x86.
      
      	* gcc.target/i386/isa-check.h: New.
      	* gcc.target/i386/vperm-2-2.inc, gcc.target/i386/vperm-4-1.inc,
      	gcc.target/i386/vperm-4-2.inc, gcc.target/i386/vperm-v2df.c,
      	gcc.target/i386/vperm-v2di.c, gcc.target/i386/vperm-v4sf-1.c,
      	gcc.target/i386/vperm-v4sf-2.c, gcc.target/i386/vperm-v4si-1.c,
      	gcc.target/i386/vperm-v4si-2.c, gcc.target/i386/vperm-v4si-2x.c,
      	gcc.target/i386/vperm.pl: New files.
      
      From-SVN: r154667
      Richard Henderson committed
    • pr36493.c: Call check_vect. · dac9d53a
      	* gcc.dg/vect/pr36493.c: Call check_vect.
      	* gcc.dg/vect/pr37539.c: Likewise.
      	* gcc.dg/vect/vect-nest-cycle-3.c: Call check_vect earlier.
      	* tree-vect.h (check_vect): Use cpuid for x86.
      
      From-SVN: r154666
      Richard Henderson committed
    • target.h (targetm.vectorize.builtin_vec_perm_ok): New. · faf63e39
      	* target.h (targetm.vectorize.builtin_vec_perm_ok): New.
      	* target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New.
      	* hooks.h, hooks.c (hook_bool_tree_tree_true): New.
      	* tree-vect-slp.c (vect_create_mask_and_perm): Don't create
      	the vector constant here...
      	(vect_transform_slp_perm_load): ... do it here instead.  Validate
      	that the permutation vector is implementable by the target.
      
      From-SVN: r154665
      Richard Henderson committed
    • Daily bump. · dac29646
      From-SVN: r154664
      GCC Administrator committed