Commit Graph

32969 Commits

Author SHA1 Message Date
Dorit Nuzman 5b900a4c0e re PR target/25413 (wrong alignment or incorrect address computation in vectorized code on Pentium 4 SSE)
2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>
            Devang Patel  <dpatel@apple.com>

        PR tree-optimization/25413
        * targhooks.c (default_builtin_vector_alignment_reachable): New.
        * targhooks.h (default_builtin_vector_alignment_reachable): New.
        * tree.h (contains_packed_reference): New.
        * expr.c (contains_packed_reference): New.
        * tree-vect-analyze.c (vector_alignment_reachable_p): New.
        (vect_enhance_data_refs_alignment): Call
        vector_alignment_reachable_p.
        * target.h (vector_alignment_reachable): New builtin.
        * target-def.h (TARGET_VECTOR_ALIGNMENT_REACHABLE): New.
        * config/rs6000/rs6000.c (rs6000_vector_alignment_reachable): New.
        (TARGET_VECTOR_ALIGNMENT_REACHABLE): Define.


Co-Authored-By: Devang Patel <dpatel@apple.com>

From-SVN: r126591
2007-07-12 14:42:08 +00:00
Geoffrey Keating d872ada017 builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a FUNCTION_DECL.
* builtins.c (get_pointer_alignment): Honor DECL_ALIGN on a
	FUNCTION_DECL.
	* tree.c (build_decl_stat): Move code from here...
	(make_node_stat): ... to here.  Don't uselessly clear DECL_USER_ALIGN.
	(expr_align): Honor DECL_ALIGN on a FUNCTION_DECL.  Add comment
	about using DECL_ALIGN of LABEL_DECL and CONST_DECL.
	* tree.h (DECL_USER_ALIGN): Fix misplaced comment.
	* varasm.c (assemble_start_function): Use DECL_ALIGN instead of
	FUNCTION_BOUNDARY.

From-SVN: r126588
2007-07-12 13:43:33 +00:00
Dorit Nuzman e95b59d2ab target.h (builtin_vectorization_cost): Add new target builtin.
2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>

        * target.h (builtin_vectorization_cost): Add new target builtin.
        * target-def.h (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
        * tree-vectorizer.h (TARG_SCALAR_STMT_COST): New.
        (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST): New.
        * tree-vect-analyze.c (vect_analyze_slp_instance): Initisliaze
        uninitialized variables.
        * tree-vect-transform.c (cost_for_stmt): New function.
        (vect_estimate_min_profitable_iters): Call cost_for_stmt instead of
        using cost 1 for all scalar stmts. Be less conservative when
        estimating the number of prologue/epulogue iterations. Call
        targetm.vectorize.builtin_vectorization_cost. Return
        min_profitable_iters-1.
        (vect_model_reduction_cost): Use TARG_SCALAR_TO_VEC_COST for
        initialization cost instead of TARG_VEC_STMT_COST. Use
        TARG_VEC_TO_SCALAR_COST instead of TARG_VEC_STMT_COST for reduction
        epilogue code. Fix epilogue cost computation.
        * config/spu/spu.c (spu_builtin_vectorization_cost): New.
        (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): Implement.
        * config/spu/spu.h (TARG_COND_BRANCH_COST, TARG_SCALAR_STMT_COST):
        (TARG_SCALAR_LOAD_COST, TARG_SCALAR_STORE_COST, TARG_VEC_STMT_COST):
        (TARG_VEC_TO_SCALAR_COST, TARG_SCALAR_TO_VEC, TARG_VEC_LOAD_COST):
        (TARG_VEC_UNALIGNED_LOAD_COST, TARG_VEC_STORE_COST): Define.

2007-07-12  Dorit Nuzman  <dorit@il.ibm.com>

        * gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c: Loops now
        get vectorized.
        * gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: Loops
        now get vectorized.
        * gcc.dg/vect/costmodel/spu/spu-costmodel-vect.exp: New.
        * gcc.dg/vect/costmodel/spu/costmodel-fast-math-vect-pr29925.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31a.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31b.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31c.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-31d.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-76a.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-76c.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68a.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68b.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68c.c: New.
        * gcc.dg/vect/costmodel/spu/costmodel-vect-68d.c: New.
        * lib/target-supports.exp (check_effective_target_vect_int_mul):
        Add spu.

From-SVN: r126584
2007-07-12 12:17:03 +00:00
Richard Guenther 8f20c48505 gimplify.c (gimplify_conversion): Make sure that the result from maybe_fold_offset_to_reference is trivially...
2007-07-12  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_conversion): Make sure that the result
	from maybe_fold_offset_to_reference is trivially convertible
	to the desired type before doing the simplification.
	(gimplify_expr): Likewise.
	* fold-const.c (fold_binary): Use the correct types for
	building the simplified expression.

From-SVN: r126577
2007-07-12 10:27:51 +00:00
Zdenek Dvorak 44f51d597e re PR rtl-optimization/32729 (Loop unrolling not performed with large constant loop bound)
PR rtl-optimization/32729
	* cfghooks.c (can_duplicate_block_p): Do not forbid duplicating blocks
	that fallthru to exit.

From-SVN: r126576
2007-07-12 10:24:19 +00:00
Kaz Kojima 45312d9d96 sh.md (symGOTOFF2reg): Add missing parenthesis.
* config/sh/sh.md (symGOTOFF2reg): Add missing parenthesis.
	(symDTPOFF2reg): Likewise.

From-SVN: r126571
2007-07-12 03:56:01 +00:00
Daniel Berlin c5830edf85 re PR tree-optimization/32663 (revision 126369 went into an infinite loop)
2007-07-11  Daniel Berlin  <dberlin@dberlin.org>

	PR tree-optimization/32663
	
	* tree.h (VALUE_HANDLE_VUSES): Remove.
	(struct tree_value_handle): Remove vuses.

	* tree-vn.c (create_value_handle_for_expr): Don't set
	VALUE_HANDLE_VUSES. 

	* tree-ssa-pre.c (expression_vuses): New.
	(alloc_expression_id): Set up expression_vuses.
	(get_expression_vuses): New.
	(set_expression_vuses): Ditto.
	(clear_expression_ids): Modify for expression_vuses.
	(phi_translate_1): Ditto.
	(phi_translate_set): Ditto.
	(value_dies_in_block_x): Ditto
	(valid_in_sets): Ditto.
	(add_to_sets): Ditto.
	(find_existing_value_expr): Ditto.
	(create_value_handle_for_expr): Ditto.
	(make_values_for_stmt): Ditto.
	(vuse_equiv): Remove.

From-SVN: r126568
2007-07-12 02:20:04 +00:00
Alexandre Oliva 66a82a79ea * Makefile.in (mostlyclean): Remove object files.
From-SVN: r126566
2007-07-12 01:10:51 +00:00
Kenneth Zadeck ef4375b218 toplev.c (no_new_pseudos): Deleted.
2007-07-11  Kenneth Zadeck <zadeck@naturalbridge.com>

	* toplev.c (no_new_pseudos): Deleted.
	* rtl.h (no_new_pseudos): Deleted.
	* tree-pass.h (pass_no_new_pseudos): Deleted. 
	* passes.c (pass_no_new_pseudos): Deleted.
	* final.c (rest_of_clean_state): Removed no_new_pseudos.
	(rest_of_no_new_pseudos, pass_no_new_pseudos): Deleted.
	* struct-equiv.c (rtx_equiv_p): Replaced no_new_pseudos with 
	reload_completed.
	* cfgcleanup.c (try_crossjump_to_edge): Ditto. 
	* rtlhooks.c (gen_lowpart_general): Ditto.
	* optabs.c (prepare_operand): Ditto.
	* mode-switching.c (rest_of_handle_mode_switching): Deleted set of
	no_new_pseudos.
	* modulo-sched.c (rest_of_handle_sms): Ditto.
	* see.c (rest_of_handle_see): Ditto.
	* ifcvt.c (if_convert): Ditto.
	(gate_handle_if_after_combine): Replaced no_new_pseudos with 
	reload_completed.
	* init-regs.c (gate_initialize_regs): Deleted set of
	no_new_pseudos.
	* lower-subreg.c (decompose_multiword_subregs): Ditto. 
	* bb-reorder.c (rest_of_handle_partition_blocks): Ditto.
	* doc/md.texi: Changed no_new_pseudos to can_create_pseudo_p.

From-SVN: r126561
2007-07-11 22:57:51 +00:00
Uros Bizjak 29d27fb08a re PR target/32661 (__builtin_ia32_vec_ext suboptimal for pointer/ref args)
PR target/32661
        * config/i386/sse.md (*sse2_storeq_rex64): Handle 64bit mem->reg moves.
        (*vec_extractv2di_1_sse2): Disable for TARGET_64BIT.
        (*vec_extractv2di_1_rex64): New insn pattern.

testsuite/ChangeLog:

        PR target/32661
        * gcc.target/i386/pr32661-1.c: New test.

From-SVN: r126557
2007-07-11 20:42:44 +02:00
David Daney aa3e18a066 linux-unwind.h (mips_fallback_frame_state): Rewrite return address calculation.
* config/mips/linux-unwind.h (mips_fallback_frame_state): Rewrite
	return address calculation.  Substitute DWARF_ALT_FRAME_RETURN_COLUMN
	for SIGNAL_UNWIND_RETURN_COLUMN.
	* config/mips/mips.h (SIGNAL_UNWIND_RETURN_COLUMN): Remove.
	(DWARF_FRAME_REGNUM): Rewrite.
	(DWARF_ALT_FRAME_RETURN_COLUMN) Define.

From-SVN: r126555
2007-07-11 16:56:54 +00:00
Nick Clifton 9251d66467 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Revert previous delta and use gen_int_mode in place of GET_INT instead.
From-SVN: r126552
2007-07-11 14:03:37 +00:00
Uros Bizjak 942ca20a70 reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name and letter field.
* reg-stack.c (struct tree_opt_pass pass_stack_regs): Nullify name
        and letter field.

From-SVN: r126551
2007-07-11 15:52:44 +02:00
Douglas Gregor 7313518b90 params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>

       * params.def (PARAM_VERIFY_CANONICAL_TYPES): Remove.
       (PARAM_USE_CANONICAL_TYPES): New; decides whether to use canonical
       types or not.
       * params.h (VERIFY_CANONICAL_TYPES): Remove.
       (USE_CANONICAL_TYPES): New.
       * doc/invoke.texi (verify-canonical-types): Remove.
       (use-canonical-types): Add.

2007-07-11  Douglas Gregor  <doug.gregor@gmail.com>

       * typeck.c (comptypes): When USE_CANONICAL_TYPES, use the
       canonical types; otherwise, fall back to structural type
       comparisons. If ENABLE_CHECKING and USE_CANONICAL_TYPES, give an
       internal compiler error if the canonical types are wrong.

From-SVN: r126550
2007-07-11 13:50:13 +00:00
Ulrich Weigand 039cb25833 spu.c (spu_optimization_options): Remove setting of parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
* config/spu/spu.c (spu_optimization_options): Remove setting of
	parameter PARAM_MAX_COMPLETELY_PEEL_TIMES.
	(spu_override_options): Move it here.

From-SVN: r126549
2007-07-11 13:41:30 +00:00
Richard Sandiford 9e32002f0d mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and -m4ksd.
gcc/
	* config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle -m4ksc and
	-m4ksd.
	* config/mips/mips.c (mips_cpu_info_table): Mention MIPS_ISA_LEVEL_SPEC
	in the comment.

From-SVN: r126548
2007-07-11 13:09:51 +00:00
Eric Botcazou 26b70b9f64 re PR tree-optimization/32713 (ICE in copy_reference_ops_from_ref, at tree-ssa-sccvn.c:550)
PR tree-optimization/32713
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle REAL_CST.

From-SVN: r126547
2007-07-11 10:29:17 +00:00
Paolo Carlini 4ac1edaf7f re PR middle-end/30482 (<complex> division by 0)
2007-07-11  Paolo Carlini  <pcarlini@suse.de>

	PR middle-end/30482
	* c-opts.c (c_common_post_options): Do not change flag_complex_method
	conditional to flag_isoc99.
	(c_common_init_options): Do it here, unconditionally.

From-SVN: r126546
2007-07-11 10:23:56 +00:00
Eric Botcazou c2979eaf57 re PR tree-optimization/32589 (exp_dbug.adb:981: error: invalid array index)
PR tree-optimization/32589
	* doc/tree-ssa.texi (Rough GIMPLE Grammar): Add missing rule.
	* tree-gimple.c (is_gimple_min_invariant): Clarify head comment.
	* tree-ssa-propagate.c (valid_gimple_expression_p): New
	predicate, extracted from...
	(set_rhs): ...here.  Call it for the expression on entry.
	* tree-ssa-propagate.h (valid_gimple_expression_p): Declare.
	* tree-ssa-sccvn.c: Include tree-ssa-propagate.h.
	(simplify_binary_expression): Use valid_gimple_expression_p
	to validate the simplification.
	* Makefile.in (tree-ssa-sccvn.o): Depends on tree-ssa-propagate.h.

From-SVN: r126545
2007-07-11 09:43:25 +00:00
Danny Smith 13c0a63051 cygming.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2_DEBUG on 32 bit target too.
* config/i386/cygming.h (PREFERRED_DEBUGGING_TYPE): Define to
	DWARF2_DEBUG on 32 bit target too.
	(DWARF2_UNWIND_INFO): Reorganize 64-bit vs 32-bit definition.

From-SVN: r126544
2007-07-11 09:37:18 +00:00
Nick Clifton 0dcd2e7872 oops - this is the missing changelog entry for the previous delta
From-SVN: r126540
2007-07-11 08:26:55 +00:00
David Daney df770e0442 mips.h (ISA_HAS_SYNCI): New target capability predicate.
2007-07-10  David Daney  <ddaney@avtrex.com>

	* config/mips/mips.h (ISA_HAS_SYNCI): New target capability
	predicate.
	(INITIALIZE_TRAMPOLINE): Emit clear_cache insn instead of  library
	call.
	* config/mips/mips.c (mips_expand_synci_loop): New function.
	* config/mips/mips.md (UNSPEC_CLEAR_HAZARD): New constant.
	(UNSPEC_RDHWR): Same.
	(UNSPEC_SYNCI): Same.
	(UNSPEC_SYNC): Same.
	(clear_cache): New expand.
	(sync): New insn.
	(synci): Same.
	(rdhwr): Same.
	(clear_hazard): Same.
	* config/mips/mips-protos.h (mips_expand_synci_loop): Declare
	function.
	* testsuite/gcc.target/mips/clear-cache-1.c: New test.
	* testsuite/gcc.target/mips/clear-cache-2.c: New test.

From-SVN: r126537
2007-07-11 05:14:35 +00:00
Ian Lance Taylor f8335a4ff0 emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than no_new_pseudos.
* emit-rtl.c (gen_reg_rtx): Check can_create_pseudo_p rather than
	no_new_pseudos.

From-SVN: r126536
2007-07-11 04:45:48 +00:00
David Daney 677feb77ce builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
2007-07-10  David Daney  <ddaney@avtrex.com>

	* builtins.def (BUILT_IN_CLEAR_CACHE): New builtin.
	* builtins.c (expand_builtin___clear_cache): New function.
	(expand_builtin): Call expand_builtin___clear_cache for
	BUILT_IN_CLEAR_CACHE case.
	* doc/extend.texi (__builtin___clear_cache): Document new builtin.
	* doc/md.texi (clear_cache): Document new instruction pattern.
	* testsuite/gcc.dg/builtins-64.c: New test.

From-SVN: r126535
2007-07-11 04:13:10 +00:00
Hans-Peter Nilsson 3a0e695acd * config/cris/cris.md ("movsi"): Fix typo in last change.
From-SVN: r126534
2007-07-11 03:02:36 +00:00
Geoffrey Keating 837edd5f11 re PR bootstrap/32617 (explow.c references DECL_ALIGN of a FUNCTION_DECL)
2007-07-09  Geoffrey Keating  <geoffk@apple.com>

	PR 32617
	* c-common.c (c_alignof_expr): Look at DECL_ALIGN of
	FUNCTION_DECLs.
	(handle_aligned_attribute): Allow use on FUNCTION_DECLs.
	* varasm.c (assemble_start_function): Honor DECL_ALIGN
	for FUNCTION_DECLs.  Don't use align_functions_log if
	DECL_USER_ALIGN.
	* print-tree.c (print_node): Print DECL_ALIGN and DECL_USER_ALIGN
	even for FUNCTION_DECLs.
	* c-decl.c (merge_decls): Propagate DECL_ALIGN even for
	FUNCTION_DECLs.
	* tree.h (DECL_ALIGN): Update for new location of 'align'.
	(DECL_FUNCTION_CODE): Update for new location and name of
	'function_code'.
	(DECL_OFFSET_ALIGN): Update for new location of 'off_align'.
	(struct tree_decl_common): Move 'align' and 'off_align' out
	of union, ensure they're still on a 32-bit boundary.  Remove
	other fields in union 'u1'.
	(struct tree_function_decl): Add field 'function_code' replacing
	'u1.f' in tree_decl_common.
	* tree.c (build_decl_stat): Set initial value of DECL_ALIGN.
	* doc/extend.texi (Function Attributes): Add 'aligned' attribute.
	(Variable Attributes): Cross-reference 'aligned' attribute
	to Function Attributes.
	* flags.h (force_align_functions_log): Delete.
	* toplev.c (force_align_functions_log): Delete.

Index: gcc/testsuite/ChangeLog
2007-07-09  Geoffrey Keating  <geoffk@apple.com>

	PR 32617
	* gcc.c-torture/execute/align-3.c: New.

Index: gcc/java/ChangeLog
2007-07-09  Geoffrey Keating  <geoffk@apple.com>

	PR 32617
	* lang.c (java_init): Remove setting of force_align_functions_log.
	* class.c (add_method_1): Set DECL_ALIGN of non-static method
	to cope with ptrmemfunc_vbit_in_pfn.

Index: gcc/cp/ChangeLog
2007-07-09  Geoffrey Keating  <geoffk@apple.com>

	PR 32617
	* decl.c (cxx_init_decl_processing): Don't set
	force_align_functions_log.
	(grokfndecl): Honour ptrmemfunc_vbit_in_pfn.
	* typeck.c (cxx_alignof_expr): When alignof is used on a plain
	FUNCTION_DECL, return its alignment.

From-SVN: r126529
2007-07-10 23:08:52 +00:00
Uros Bizjak 558be301bd re PR target/32708 (_mm_cvtsi64x_si128() and _mm_cvtsi128_si64x() inefficient)
PR target/32708
        * config/i386/sse.md (vec_concatv2di): Disable for TARGET_64BIT.
        (*vec_concatv2di_rex): New insn pattern.

testsuite/ChangeLog:

        PR target/32708
        * gcc.target/i386/pr32708-1.c: New test.
        * gcc.target/i386/pr32708-2.c: Ditto.
        * gcc.target/i386/pr32708-3.c: Ditto.

From-SVN: r126523
2007-07-10 21:26:58 +02:00
Rainer Orth 333f4a4052 re PR target/32538 (All libgomp tests fail to link on IRIX 6: copysignl undefined)
PR target/32538
	* config/mips/iris6.h (LIBGCC_SPEC): Add libm.

From-SVN: r126520
2007-07-10 18:02:30 +00:00
Ian Lance Taylor b3a134196f Replace no_new_pseudos in backends.
* rtl.h (can_create_pseudo_p): Define.
	* config/darwin.c (machopic_indirect_data_reference): Use
	can_create_pseudo_p () instead of no_new_pseudos.
	(machopic_indirect_data_reference): Likewise.
	(machopic_legitimize_pic_address): Likewise.
	* config/alpha/alpha.c (alpha_legitimize_address): Likewise.
	(alpha_emit_set_const_1): Likewise.
	(alpha_emit_set_const): Likewise.
	(alpha_emit_conditional_move): Likewise.
	(alpha_split_conditional_move): Likewise.
	* config/alpha/alpha.md (various splitters): Likewise.
	(movti): Likewise.
	* config/arm/arm.c (legitimize_pic_address): Likewise.
	(arm_load_pic_register): Likewise.
	* config/arm/arm.md (addsi3, subsi3, andsi3, iorsi3): Likewise.
	(movdi, movsi, movhi, movqi, movsf, movdf): Likewise.
	* config/bfin/bfin.c (legitimize_pic_address): Likewise.
	* config/cris/cris.c (cris_expand_pic_call_address): Likewise.
	* config/cris/cris.md (movsi): Likewise.
	* config/frv/frv.md (symGOT2reg_hilo): Likewise.
	(symGOTOFF2reg_hilo): Likewise.
	(symGPREL2reg, symGPREL2reg_hilo): Likewise.
	* config/h8300/h8300.md (insv, extzv): Likewise.
	* config/i386/i386.c (ix86_expand_move): Likewise.
	(ix86_expand_vector_move): Likewise.
	(ix86_prepare_fp_compare_args): Likewise.
	(ix86_expand_carry_flag_compare): Likewise.
	* config/i386/i386.md (tls_dynamic_gnu2_32): Likewise.
	(tls_dynamic_gnu2_combine_32): Likewise.
	(tls_dynamic_gnu2_64, tls_dynamic_gnu2_combine_64): Likewise.
	* config/ia64/ia64.c (ia64_expand_move): Likewise.
	(ia64_expand_movxf_movrf): Likewise.
	* config/m32c/m32c.c (m32c_prepare_move): Likewise.
	(m32c_split_move): Likewise.
	(m32c_expand_insv): Likewise.
	* config/m68k/m68k.md (movsi): Likewise.
	* config/mips/mips.c (mips_force_temporary): Likewise.
	(mips_split_symbol): Likewise.
	(mips_move_integer): Likewise.
	(mips_legitimize_const_move): Likewise.
	* config/mn10300/mn10300.md (movsi): Likewise.
	* config/pa/pa.c (emit_move_sequence): Likewise.
	* config/rs6000/rs6000.c (rs6000_emit_move): Likewise.
	(rs6000_got_register): Likewise.
	(create_TOC_reference): Likewise.
	(rs6000_machopic_legitimize_pic_address): Likewise.
	* config/rs6000/rs6000.md (add<mode>3): Likewise.
	(various splitters): Likewise.
	(iorsi3, xorsi3, iordi3, xordi3): Likewise.
	(movsi_got): Likewise.
	* config/s390/s390.c (emit_symbolic_move): Likewise.
	* config/s390/s390.md (movhi, movqi): Likewise.
	(load_multiple, store_multiple): Likewise.
	* config/score/score.c (score_force_temporary): Likewise.
	* config/sh/sh.c (prepare_move_operands): Likewise.
	(prepare_cbranch_operands): Likewise.
	(emit_fpu_switch): Likewise.
	(fpscr_set_from_mem): Likewise.
	* config/sh/sh.md (movdicc, movsicc, movsicc_umin): Likewise.
	(adddi3, subsi3): Likewise.
	(various splitters): Likewise.
	(divsi_inv_fp_combine): Likewise.
	(symGOT_load, symGOTOFF2reg, symDTPOFF2reg): Likewise.
	(seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu): Likewise.
	(sne): Likewise.
	* config/sh/predicates.md (xor_operand): Likewise.
	* config/sparc/sparc.c (legitimize_tls_address): Likewise.
	* config/sparc/sparc.md (movsi_pic_label_ref): Likewise.
	(movdi_pic_label_ref): Likewise.
	* config/spu/spu.c (spu_split_immediate): Likewise.
	* config/alpha/alpha.md (various splitters): Remove test
	!no_new_pseudos || reload_completed.
	* config/ia64/ia64.c (ia64_output_mi_thunk): Don't set
	no_new_pseudos.
	* config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/score/score.c (th_output_mi_thunk): Likewise.
	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.

From-SVN: r126517
2007-07-10 17:23:11 +00:00
Kaz Kojima 89ab46599d re PR rtl-optimization/32664 ([sh] ICE in create_pre_exit, at mode-switching.c:373)
PR rtl-optimization/32664
	* mode-switching.c (create_pre_exit): Skip barrier insns.

From-SVN: r126507
2007-07-10 01:01:11 +00:00
Zdenek Dvorak c6540bdeb4 tree-scalar-evolution.c (scev_const_prop): Add arguments to force_gimple_operand_bsi.
* tree-scalar-evolution.c (scev_const_prop): Add arguments to
	force_gimple_operand_bsi.
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr,
	rewrite_use_compare): Ditto.
	* tree-ssa-address.c (gimplify_mem_ref_parts, create_mem_ref):
	Ditto.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Ditto.
	* tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto.
	* lambda-code.c (replace_uses_equiv_to_x_with_y): Ditto.
	* tree-profile.c (prepare_instrumented_value,
	tree_gen_interval_profiler, tree_gen_pow2_profiler,
	tree_gen_one_value_profiler, tree_gen_ic_profiler,
	tree_gen_ic_func_profiler, tree_gen_average_profiler,
	tree_gen_ior_profiler): Ditto.
	* tree-ssa-reassoc.c (negate_value): Ditto.
	* matrix-reorg.c (transform_access_sites, transform_allocation_sites):
	Use force_gimple_operand_bsi.
	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
	* tree-if-conv.c (add_to_dst_predicate_list,
	find_phi_replacement_condition): Ditto.
	* gimplify.c (force_gimple_operand_bsi): Add before and m arguments.
	Call mark_symbols_for_renaming for new statements.
	* tree-flow.h (force_gimple_operand_bsi): Declaration changed.

From-SVN: r126500
2007-07-09 23:04:06 +00:00
Zdenek Dvorak 452ba14de1 cfghooks.c (remove_edge): New function.
* cfghooks.c (remove_edge): New function.
	(redirect_edge_and_branch, remove_branch, merge_blocks): Updated
	loop exit rescans.
	* cfghooks.h (remove_edge): Declare.
	* cfg.c (remove_edge): Renamed to remove_edge_raw.
	* basic-block.h (remove_edge): Declaration changed to remove_edge_raw.

From-SVN: r126499
2007-07-09 22:44:03 +00:00
Wolfgang Gellerich 0f67fa83f2 optabs.h: Added declaration for signbit_optab.
2007-07-09  Wolfgang Gellerich  <gellerich@de.ibm.com>

	* optabs.h: Added declaration for signbit_optab.  
	* optabs.c: (init_optabs): Added initialization for signbit_optab.
	* genoptinit.c (optabs): Added entry for signbit insns.  
	* builtins.c (expand_builtin_signbit): Added code to use a signbit insn,
	if available.  
	* config/s390/s390.h (S390_TDC_SIGNBIT_SET): New constant.  
	* config/s390/s390.md (signbit<mode>2): New expander.

From-SVN: r126495
2007-07-09 20:12:51 +00:00
Richard Guenther b462d62daf re PR tree-optimization/32698 (inefficient pointer expression)
2007-07-09  Richard Guenther  <rguenther@suse.de>

	PR middle-end/32698
	* fold-const.c (fold_plusminus_mult_expr): Move constant
	arguments second to allow decomposing.

From-SVN: r126494
2007-07-09 19:41:54 +00:00
Alexandre Oliva 694dd537b9 revert: re PR debug/23551 (dwarf records for inlines appear incomplete)
Revert:
2007-07-06  Alexandre Oliva  <aoliva@redhat.com>
PR debug/23551
* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
Disregard DECL_FROM_INLINE.

From-SVN: r126492
2007-07-09 19:24:23 +00:00
Uros Bizjak 13c594155d re PR target/27855 (reassociation causes the RA to be confused)
PR target/27855
        * doc/extend.texi: Add ftree-reassoc flag.
        * common.opt (ftree-reassoc): New flag.
        * tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
        (struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.

From-SVN: r126491
2007-07-09 21:22:03 +02:00
Uros Bizjak 8b4c775b68 re PR tree-optimization/32681 (ice for legal C code with flags -ffast-math -O3 -ftree-vectorize)
PR tree-optimization/32681
	* tree-if-conv.c (find_phi_replacement_condition): Use the condition
	saved in second_edge->aux when first_bb is a loop header.

testsuite/ChangeLog:

	PR tree-optimization/32681
	* gcc.dg/tree-ssa/pr32681.c: New test.

From-SVN: r126482
2007-07-09 15:00:19 +02:00
Jan Hubicka d241cd48e0 * cse.c (cse_insn): Avoid invalid sharing on trial replacement.
From-SVN: r126481
2007-07-09 10:22:36 +00:00
Richard Guenther f967586f51 decl.c (start_preparsed_function): Do not promote return type.
2007-07-09  Richard Guenther  <rguenther@suse.de>

	cp/
	* decl.c (start_preparsed_function): Do not promote return type.

	* c-decl.c (start_function): Do not promote return type.

From-SVN: r126480
2007-07-09 09:53:11 +00:00
Daniel Franke 534fd53491 re PR fortran/24784 (Warning about unused routine argument should not read "unused variable")
gcc:
2007-07-08  Daniel Franke  <franke.daniel@gmail.com>

	* function.c (do_warn_unused_parameter): Do not warn if
        TREE_NO_WARNING is set.

gcc/fortran:
2007-07-08  Daniel Franke  <franke.daniel@gmail.com>

	PR fortran/24784
	PR fortran/28004
	* trans-decl.c (generate_local_decl): Adjusted warning on unused 
	dummy arguments, tell middle-end not to emit additional warnings.

From-SVN: r126471
2007-07-08 18:41:35 -04:00
Andreas Schwab 9f06d33079 * doc/invoke.texi (DEC Alpha/VMS Options): Fix typo.
From-SVN: r126462
2007-07-08 16:06:33 +00:00
Sandra Loosemore 170ea7b948 revert: c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS apply to assembly language, too.
2007-07-08  Sandra Loosemore  <sandra@codesourcery.com>

	Revert this patch:
	2007-07-06  Sandra Loosemore  <sandra@codesourcery.com>

	* c-opts.c (c_common_handle_option): Make DOLLARS_IN_IDENTIFIERS
	apply to assembly language, too.
	* doc/tm.texi (DOLLARS_IN_IDENTIFIERS): Update.

From-SVN: r126458
2007-07-08 09:46:20 -04:00
Daniel Berlin b71b4522b5 Revert (note the sccvn portions are *not* reverted) 2007-07-06 Daniel Berlin <dberlin@dberlin.org>
2007-07-07  Daniel Berlin  <dberlin@dberlin.org>

	Revert (note the sccvn portions are *not* reverted)
	2007-07-06  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/23488

	* tree-vn.c (set_value_handle): Use decl_vh_map for decl value
	handles.
	* tree-flow-inline.h (get_value_handle): Ditto.
	* tree-ssa-pre.c (decl_vh_map): New.
	(decl_node_pool): New.
	(can_value_number_operation): Support DECL_P.
	(can_PRE_operation): Ditto.
	(create_expression_by_pieces): Ditto.
	(find_existing_value_expr): Modify to differnetiate between
	addressing and top level.
	(create_value_handle_for_expr): Handle DECL's.
	(poolify_tree): Ditto.
	(make_values_for_phi): Don't insert into PHI_GEN during FRE.
	(make_values_for_stmt): Handle DECL's properly.
	(init_pre): Reorg to not init useless things during FRE.
	(fini_pre): Ditto.
	* tree-flow.h: Include pointer-set.h.
	(decl_vh_map): Declare.
	* Makefile.in (TREE_FLOW_H): Add pointer-set.h

From-SVN: r126449
2007-07-07 22:23:26 +00:00
Eric Weddington 0e8eb4d81e constraints.md (define_memory_constraint "Q"): Fix the constraint description.
* config/avr/constraints.md (define_memory_constraint "Q"): Fix
	the constraint description.
	* doc/md.texi: Update documentation of AVR constraints.

From-SVN: r126448
2007-07-07 23:55:12 +04:00
Kazu Hirata f576d4f942 tree-ssa-operands.c (realloc_vop, [...]): Remove.
* tree-ssa-operands.c (realloc_vop, realloc_vdef,
	realloc_vuse): Remove.
	* tree-ssa-operands.h: Remove the prototype for realloc_vdef
	and realloc_vuse.

From-SVN: r126442
2007-07-07 14:20:58 +00:00
Kazu Hirata 0a6b055f65 cfgrtl.c (delete_insn_chain_and_edges): Remove.
* cfgrtl.c (delete_insn_chain_and_edges): Remove.
	* rtl.h: Remove the prototype for delete_insn_chain_and_edges.

From-SVN: r126441
2007-07-07 14:20:02 +00:00
Kazu Hirata 6ed3da0066 auto-inc-dec.c, [...]: Fix comment typos.
* auto-inc-dec.c, config/arm/arm.c,
	config/m32r/constraints.md, config/mips/mips.md,
	config/rs6000/rs6000.c, cselib.c, dce.c, df-core.c,
	df-problems.c, df-scan.c, df.h, dse.c, gimplify.c,
	tree-if-conv.c, tree-ssa-sccvn.c, tree-ssa.c: Fix comment
	typos.  Follow spelling conventions.
	* doc/invoke.texi, doc/rtl.texi: Fix typos.

From-SVN: r126439
2007-07-07 13:00:43 +00:00
Daniel Berlin e9bd9cf340 re PR middle-end/23488 (GCSE load PRE does not work with non sets (or missing load PRE with plain decls))
2007-07-06  Daniel Berlin  <dberlin@dberlin.org>

	Fix PR tree-optimization/23488

	* tree-ssa-sccvn.c (expr_has_constants): Handle tcc_declaration.
	(try_to_simplify): Ditto.
	(visit_use): Ditto.
	* tree-vn.c (set_value_handle): Use decl_vh_map for decl value
	handles.
	* tree-flow-inline.h (get_value_handle): Ditto.
	* tree-ssa-pre.c (decl_vh_map): New.
	(decl_node_pool): New.
	(can_value_number_operation): Support DECL_P.
	(can_PRE_operation): Ditto.
	(create_expression_by_pieces): Ditto.
	(find_existing_value_expr): Modify to differnetiate between
	addressing and top level.
	(create_value_handle_for_expr): Handle DECL's.
	(poolify_tree): Ditto.
	(make_values_for_phi): Don't insert into PHI_GEN during FRE.
	(make_values_for_stmt): Handle DECL's properly.
	(init_pre): Reorg to not init useless things during FRE.
	(fini_pre): Ditto.
	* tree-flow.h: Include pointer-set.h.
	(decl_vh_map): Declare.
	* Makefile.in (TREE_FLOW_H): Add pointer-set.h

From-SVN: r126434
2007-07-07 03:25:29 +00:00
Sandra Loosemore 48468cd0b7 missed ChangeLog for last patch
From-SVN: r126428
2007-07-06 18:10:59 -04:00
Ian Lance Taylor 508dabda23 re PR middle-end/32441 (ICE in expand_expr_real_1, at expr.c:7109)
2007-07-06  Ian Lance Taylor  <iant@google.com>
            Zack Weinberg  <zackw@panix.com>

	PR middle-end/32441
	* builtins.c (std_expand_builtin_va_start): Don't use make_tree.

Co-Authored-By: Zack Weinberg <zackw@panix.com>

From-SVN: r126424
2007-07-06 17:57:58 +00:00