Commit Graph

32392 Commits

Author SHA1 Message Date
Uros Bizjak 98120f628b tree-vect-transform.c (vect_update_inits_of_drs): Use vect_print_dump_info() to output debug information.
* tree-vect-transform.c (vect_update_inits_of_drs): Use
        vect_print_dump_info() to output debug information.

From-SVN: r124380
2007-05-03 16:50:34 +02:00
Uros Bizjak f3ba423529 re PR target/31768 (Invalid code or ICE for %z constraint)
PR target/31768
        * config/i386/i386.c (print_operand) ['z']: Output 'w' for
        operands of size 2 when operand is not MEM_P.

From-SVN: r124379
2007-05-03 16:32:25 +02:00
Zdenek Dvorak e604f56c8f re PR tree-optimization/30565 (ICE with -O1 -ftree-pre -ftree-loop-linear)
PR tree-optimization/30565
	* lambda-code.c (perfect_nestify): Fix updating of dominators.

	* gcc.dg/tree-ssa/loop-27.c: New test.

From-SVN: r124378
2007-05-03 13:27:26 +00:00
Bernd Schmidt 314f99131f bfin.md (addpdi3, [...]): New patterns.
* config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns.
	(umulsi3_highpart): Use them.
	* config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move
	for final accumulator to D regisster tranfser.

From-SVN: r124376
2007-05-03 13:17:51 +00:00
Dorit Nuzman cb9ed5d79f re PR middle-end/31699 (-march=opteron -ftree-vectorize generates wrong code)
PR tree-optimization/31699
        * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong
        code.
        (vect_enhance_data_refs_alignment): Compute peel amount using
        TYPE_VECTOR_SUBPARTS instead of vf.
        * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise.

From-SVN: r124375
2007-05-03 12:54:45 +00:00
Brooks Moses df58283300 re PR bootstrap/31776 (Bootstrap fails with "error: conflicting types for strsignal")
PR bootstrap/31776
* system.h: Remove inclusion of double-int.h
* tree.h: Include double-int.h
* gengtype.c: Likewise
* cfgloop.h: Likewise
* Makefile.in: Adjust dependencies on double-int.h

From-SVN: r124373
2007-05-02 23:14:52 -07:00
Eric Christopher ae07728488 darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate -shared to -Zdynamiclib.
2007-05-02  Eric Christopher  <echristo@apple.com>

	    * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate
	    -shared to -Zdynamiclib.

From-SVN: r124372
2007-05-03 02:09:58 +00:00
Seongbae Park ba99296704 re PR c++/31663 (Segfault in constrain_class_visibility with anonymous namespace)
gcc/ChangeLog:
2007-05-02  Seongbae Park  <seongbae.park@gmail.com>

	PR c++/31663
	* c-common.c (strip_pointer_or_array_types): New function.
	* c-common.h (strip_pointer_or_array_types): New function declaration.

gcc/cp/ChangeLog:
2007-05-02  Seongbae Park  <seongbae.park@gmail.com>

	PR c++/31663
	* decl2.c (constrain_class_visibility): 
	Use strip_pointer_or_array_types instead of strip_array_types.

gcc/testsuite/ChangeLog:
2007-05-02  Seongbae Park  <seongbae.park@gmail.com>

	PR C++/31663
	* g++.dg/warn/anonymous-namespace-2.C: New. 
	* g++.dg/warn/anonymous-namespace-2.h: New.

From-SVN: r124363
2007-05-02 23:11:13 +00:00
Zdenek Dvorak e0310afb08 re PR rtl-optimization/31771 (g++.dg/gomp/pr26913.C ICEs)
PR tree-optimization/31771
	* tree-cfg.c (move_block_to_fn): Assign bb to the correct index.

From-SVN: r124362
2007-05-02 22:34:38 +00:00
Paul Brook ad1ec76fea bpabi.S (aeabi_lcmp): Fix result on overflow.
2007-05-02  Paul Brook  <paul@codesourcery.com>

	gcc/
	* config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow.

	gcc/testsuite/
	* gcc.dg/arm-eabi1.c: Move debug output.  Augment lcmp/ulcmp tests.

From-SVN: r124361
2007-05-02 22:16:21 +00:00
Andrew Pinski c5b75e95c0 Forgot to add the PR number to the last changelog entry:
2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/29715
        * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
        transformation.

From-SVN: r124354
2007-05-02 10:47:50 -07:00
Andrew Pinski 0e3aa12623 fold-const.c (fold_comparision): Remove the "foo++ == CONST" transformation.
2007-05-02  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        * fold-const.c (fold_comparision): Remove the "foo++ == CONST"
        transformation.

From-SVN: r124353
2007-05-02 10:47:06 -07:00
Nick Clifton 5271f9bad5 * config/frv/predicates.md (symbolic_operand): Accept CONSTs.
From-SVN: r124352
2007-05-02 17:00:19 +00:00
Richard Guenther f6c5fefc1d re PR tree-optimization/31146 (forwprop does not look through casts)
2007-05-02  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31146
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New
	argument, single_use_p.  If we have a single use that is
	a conversion to the definition rhs type, propagate that rhs.
	(forward_propagate_addr_expr): Pass single_use_p argument
	to forward_propagate_addr_expr_1.

	* g++.dg/tree-ssa/pr31146-2.C: New testcase.

From-SVN: r124349
2007-05-02 09:12:49 +00:00
H.J. Lu 9a60b02d97 i386.c (ix86_expand_sse_comi): Remove unused variable.
2007-05-01  H.J. Lu  <hongjiu.lu@intel.com>

	* config/i386/i386.c (ix86_expand_sse_comi): Remove unused
	variable.

From-SVN: r124344
2007-05-01 17:37:51 -07:00
Dwarakanath Rajagopal d8f52b0232 invoke.texi: Fix typo, 'AMD Family 10h core' instead of 'AMD Family 10 core'.
2007-05-01  Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>

        * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of
	'AMD Family 10 core'.

From-SVN: r124341
2007-05-01 19:53:40 +00:00
Dwarakanath Rajagopal 9369ed9561 Accept k8-sse3, opteron-sse3 and athlon64-sse3 as improved versions of k8,opteron and athlon64 with SSE3 instruction set support
From-SVN: r124340
2007-05-01 19:48:29 +00:00
Dwarakanath Rajagopal 2af6cb38db Tuning 32-byte loop alignment for amdfam10 architecture
From-SVN: r124336
2007-05-01 18:29:39 +00:00
Kazu Hirata b38bab9485 constraints.md: New.
* config/m68k/constraints.md: New.
	* config/m68k/m68k.h (REG_CLASS_FROM_LETTER,
	CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P,
	EXTRA_CONSTRAINT): Remove.
	* config/m68k/m68k.md: Include constraints.md.
	* expr.c (expand_expr_real_1): Copy DECL_RTL before using it.

From-SVN: r124335
2007-05-01 17:54:15 +00:00
Ian Lance Taylor e1f28918ef re PR tree-optimization/31739 (ICE at tree.c:902 compiling g-regexp.adb)
PR tree-optimization/31739
	* tree-vrp.c (vrp_val_is_max): New static function.
	(vrp_val_is_min): New static function.
	(set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than
	copying the node.
	(set_value_range): Use vrp_val_is_{max,min}.
	(extract_range_from_assert): Likewise.
	(extract_range_from_binary_expr): Likewise.
	(extract_range_from_unary_expr): Likewise.
	(dump_value_range, vrp_meet): Likewise.
	(vrp_visit_phi_node): Likewise.
	* tree.c (build_distinct_type_copy): Revert change of 2007-04-27.

From-SVN: r124334
2007-05-01 17:51:56 +00:00
Mark Mitchell 1d87d70dd0 gmon-sol2.c (size_t): New type.
* config/i386/gmon-sol2.c (size_t): New type.
	(intptr_t): Likewise.
	(s_textsize): Declare as size_t.
	(sbrk): Declare.
	(monstartup): Use size_t for sizes.
	(_mcount): Save and restore registers.
	(internal_mcount): Pass 0 as the first argument to monstartup
	in 64-bit mode.
	(moncontrol): Convert pointer to appropriately sized integer
	before passing to profil.

From-SVN: r124333
2007-05-01 17:51:21 +00:00
Joseph Myers b26941b46a darwin-ldouble.c (__gcc_qunord): Define if __NO_FPRS__, not just if _SOFT_DOUBLE.
* config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if
	__NO_FPRS__, not just if _SOFT_DOUBLE.
	* config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord
	also for E500 double.
	* config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt,
	suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT
	&& !TARGET_FPRS).

From-SVN: r124332
2007-05-01 18:41:48 +01:00
Richard Guenther ae2cf11b91 tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt is NULL.
2007-05-01  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt
 	is NULL.

From-SVN: r124329
2007-05-01 14:54:30 +00:00
Joseph Myers 037ab18d88 * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo.
From-SVN: r124328
2007-05-01 14:44:56 +01:00
Jan Hubicka 617428e9f6 tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is invariant.
* tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is
	invariant.

From-SVN: r124324
2007-05-01 11:19:59 +00:00
Jan Hubicka fe9821b88c tree.h (maybe_fold_offset_to_component_ref): Remove.
* tree.h (maybe_fold_offset_to_component_ref): Remove.
	(maybe_fold_offset_to_reference): Declare.
	* fold-const.c (fold_unary): Do not fold
	(type *)&A into &A->field_of_type_and_offset_0
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type
	size is unknown, give up.
	(maybe_fold_offset_to_component_ref): Ignore firelds with unknown
	offsets.
	(maybe_fold_offset_to_reference): New.
	(maybe_fold_stmt_indirect): Use it.
	(fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset.
	* gimplify.c (gimplify_conversion): Canonicalize conversions to
	field references.
	(gimplify_expr): Likewise for plus_expr.

From-SVN: r124323
2007-05-01 11:18:01 +00:00
Zdenek Dvorak 8b11009bad tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use bsi_after_labels.
* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use
	bsi_after_labels.  Always insert statements before bsi.
	* tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto.
	* predict.c (apply_return_prediction): Check for empty blocks.
	* cfgexpand.c (lab_rtx_for_bb): New variable.
	(label_rtx_for_bb): Do not create new tree labels.
	(expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb.
	(tree_expand_cfg): Initialize lab_rtx_for_bb.
	* tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after
	creating edges.
	(label_for_bb): Add field used.
	(update_eh_label, main_block_label): Mark the label used.
	(cleanup_dead_labels): Remove unused labels.

From-SVN: r124322
2007-05-01 10:17:43 +00:00
Richard Guenther f5052e291a tree-vrp.c (set_value_range): Do not allocate equiv bitmap if it is not about to be set.
2007-05-01  Richard Guenther  <rguenther@suse.de>

	* tree-vrp.c (set_value_range): Do not allocate equiv bitmap
	if it is not about to be set.
	(get_value_range): Do not pre-allocate equiv bitmap.
	(update_value_range): No need to clear equiv field.
	(add_equivalence): Change prototype to get bitmap pointer.
	Allocate bitmap here if it is not already.
	(extract_range_from_assert): Do not allocate bitmap here.
	Update callers to add_equivalence.
	(extract_range_from_ssa_name): Likewise.
	(get_vr_for_comparison): New static helper.
	(compare_name_with_value): Handle NULL equiv bitmap by
	peeling the first iteration of the comparison loop.
	Use get_vr_for_comparison.
	(compare_names): Handle NULL equiv bitmaps by using fake
	ones.  Use get_vr_for_comparison.

From-SVN: r124321
2007-05-01 09:32:34 +00:00
Brooks Moses e4fd22c6d5 double-int.c (mpz_set_double_int): Moved from tree-ssa-loop-niter.c.
* double-int.c (mpz_set_double_int): Moved from
tree-ssa-loop-niter.c.
(mpz_get_double_int): Likewise; also, add option to wrap
out-of-range integers.
* double-int.h: New prototypes for above.
* tree.c (get_static_type_bounds): Moved from
tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and
TYPE_MAX_VALUE if they exist..
* tree.h: New prototype for above.
* tree-ssa-loop-niter.c: Adjust mpz_to_double_int and
get_type_bounds calls.
(mpz_set_double_int): Move to double-int.c.
(get_type_bounds): Move to tree.c, rename to
get_static_type_bounds.
(mpz_to_double_int): Move to double-int.c, rename to
mpz_get_double_int.

From-SVN: r124304
2007-04-30 12:14:04 -07:00
Bob Wilson 0a21c1d2ba lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that DIV0 exception can fall through to a normal return.
* config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that
	DIV0 exception can fall through to a normal return.

From-SVN: r124303
2007-04-30 17:59:10 +00:00
Alexandre Oliva 143569a85c re PR middle-end/22156 (bit-field copying regressed)
PR middle-end/22156
Temporarily revert:
2007-04-06  Andreas Tobler  <a.tobler@schweiz.org>
2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
* tree-sra.c (try_instantiate_multiple_fields): Needlessly
initialize align to silence bogus warning.
2007-04-05  Alexandre Oliva  <aoliva@redhat.com>
* tree-sra.c (struct sra_elt): Add in_bitfld_block.  Remove
all_no_warning.
(struct sra_walk_fns): Remove use_all parameter from use.
(sra_hash_tree): Handle BIT_FIELD_REFs.
(sra_elt_hash): Don't hash bitfld blocks.
(sra_elt_eq): Skip them in parent compares as well.  Handle
BIT_FIELD_REFs.
(sra_walk_expr): Don't maintain or pass down use_all_p.
(scan_use): Remove use_all parameter.
(scalarize_use): Likewise.  Re-expand assignment to
BIT_FIELD_REF of gimple_reg.  De-scalarize before input or
output, and re-scalarize after output.  Don't mark anything
for no warning.
(scalarize_ldst): Adjust.
(scalarize_walk_gimple_modify_statement): Likewise.
(build_element_name_1): Handle BIT_FIELD_REFs.
(instantiate_element): Don't warn for any element whose parent
is used as a whole.
(instantiate_missing_elements_1): Return the sra_elt.
(canon_type_for_field): New.
(try_instantiate_multiple_fields): New.
(instantiate_missing_elemnts): Use them.
(mark_no_warning): Removed.
(generate_one_element_ref): Handle BIT_FIELD_REFs.
(REPLDUP, sra_build_elt_assignment): New.
(generate_copy_inout): Use them.
(generate_element_copy): Likewise.  Handle bitfld differences.
(generate_element_zero): Don't recurse for blocks.  Use
sra_build_elt_assignment.
(generate_one_element_int): Take elt instead of var.  Use
sra_build_elt_assignment.
(generate_element_init_1): Adjust.
(scalarize_use, scalarize_copy): Use REPLDUP.
(scalarize_ldst): Move assert before dereference.
(dump_sra_elt_name): Handle BIT_FIELD_REFs.

From-SVN: r124302
2007-04-30 17:41:11 +00:00
Andrew Pinski ab44f2818c [multiple changes]
2007-04-30  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR C++/31721
        * tree.c (reconstruct_complex_type): Reconstruct a reference
        correctly.
        Also use the same mode for the pointer as the old pointer type.
2007-04-30  Andrew pinski  <andrew_pinski@playstation.sony.com>

        PR C++/31721
        * g++.dg/ext/vector7.C: New testcase.

From-SVN: r124300
2007-04-30 10:01:18 -07:00
Francois-Xavier Coudert a19632d4f9 trouble.texi (Interoperation): Remove note about Ultrix Fortran compiler.
* doc/trouble.texi (Interoperation): Remove note about Ultrix
	Fortran compiler.

From-SVN: r124292
2007-04-30 07:54:41 +00:00
Zdenek Dvorak 8d6e09d988 changelog entry fix.
From-SVN: r124284
2007-04-29 17:34:11 +00:00
Zdenek Dvorak 268886f3b8 df-scan.c (record_nonlocal_goto_receiver_defs): New function.
* df-scan.c (record_nonlocal_goto_receiver_defs): New function.
	(df_refs_record): Call it.

From-SVN: r124283
2007-04-29 17:33:34 +00:00
Bernd Schmidt 26c5953d27 rtl.def (SS_ABS): New code.
* rtl.def (SS_ABS): New code.
	* config/bfin/bfin.c (print_operand): New modifier 'v'.
	(enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32,
	BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32,
	BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32.
	(bfin_init_builtins): Define them.
	(bdesc_1arg, bdesc_2arg): Add some of them here, ...
	(bfin_expand_builtin): ... and handle the others here.
	* config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3,
	flag_mul_macv2hi_parts_acconly_andcc0): New patterns.
	(ss_absv2hi2): Renamed from absv2hi; use ss_abs code.
	(ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count
	operand is only HImode.

From-SVN: r124280
2007-04-29 13:22:04 +00:00
Steven Bosscher 88250695a7 regclass.c (scan_one_insn): Remove splitting of two address insns.
* regclass.c (scan_one_insn): Remove splitting of
        two address insns.

From-SVN: r124277
2007-04-29 11:47:11 +00:00
Sandra Loosemore 64e7e23811 mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.
2007-04-28  Sandra Loosemore  <sandra@codesourcery.com>
	    Nigel Stephens  <nigel@mips.com>

	gcc/
	* config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16.

Co-Authored-By: Nigel Stephens <nigel@mips.com>

From-SVN: r124261
2007-04-28 13:47:28 -04:00
Jan Hubicka 55e092c4d0 alpha.c (alpha_output_mi_thunk_osf): Use insn_locators_alloc instead of insn_locators_initialize...
* config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use
	insn_locators_alloc instead of insn_locators_initialize;
	call reset_block_changes.
	* config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
	* config/sh/sh.c (sparc_output_mi_thunk): Likewise.
	* config/is64/ia64.c (ia64_output_mi_thunk): Likewise.
	* config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
	* config/score/score.c (th_output_mi_thunk): Likewise.
	* config/mips/mips.c (mips_output_mi_thunk): Likewise.
	* cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block):
	tolerate uninitialized locator info.

	Re-apply:
	* function.c (init_function_start): Don't init line number info.
	(expand_function_end): Update.
	(reset_block_changes, record_block_change, finalize_block_changes,
	check_block_change, free_block_changes): Kill.
	* function.h (reset_block_changes, record_block_change,
	finalize_block_changes, check_block_change, free_block_changes): Remove
	prototypes.
	(struct function): Remove ib_boundaries_block.
	* emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw):
	Use curr_insn_locator to initialize locator.
	(emit_line_note): Remove.
	* cfgexpand.c (expand_gimple_cond_expr): Update.
	(construct_exit_block): Likewise.
	(tree_expand_cfg): Initialize/finalize locators.
	* expr.c (expand_expr_real): Update.
	* cfglayout.c (line_locators_locs, line_locators_lines,
	file_locators_locs, file_locators_files): Remove.
	(set_block_levels): Move to cfgexpand.c.
	(insn_locators_initialize): Remove.
	(pass_insn_locators_initialize): Remove.
	(locations_locators_locs, locations_locators_vals): New static vars.
	(curr_location, last_location, curr_block, last_block, curr_rtl_loc):
	Likewise.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	New functions.
	(locator_location): New.
	(locator_line, locator_file): Rewrite.
	* rtl.h (emit_line_note): Kill.
	(insn_locators_alloc, insn_locators_finalize,
	set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator):
	Declare.
	* tree-inline.c (initialize_cfun): Do not initialize
	ib_boundaries_block.
	* passes.c (pass_insn_locators_initialize): Remove.

From-SVN: r124258
2007-04-28 08:20:08 +00:00
Zdenek Dvorak 3722506a9e tree-cfg.c (move_block_to_fn): Release bb from dominance info.
* tree-cfg.c (move_block_to_fn): Release bb from dominance
	info.  Update last_basic_block correctly.

From-SVN: r124257
2007-04-28 08:00:44 +00:00
Kaz Kojima eb996a4ac9 re PR target/31701 (SH: wrong epilogue for sibling calls)
PR target/31701
	* config/sh/sh.c (output_stack_adjust): Avoid using the frame
	register itself to hold the offset constant.  Tell flow the use
	of r4 and r5 when they are used.

From-SVN: r124248
2007-04-28 00:07:40 +00:00
Richard Guenther 113ab41c05 tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track if we simplified anything.
2007-04-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): Keep track
	if we simplified anything.
	(tree_ssa_forward_propagate_single_use_vars): Defer overflow
	warnings until we did a simplification and the stmt was not
	marked as TREE_NO_WARNING.

From-SVN: r124242
2007-04-27 21:50:04 +00:00
Mike Stump bfa455647c * config/rs6000/darwin.h (ALWAYS_PUSH_CONSTS_USING_REGS_P): Remove.
From-SVN: r124240
2007-04-27 21:36:34 +00:00
Ian Lance Taylor 093b203ba9 re PR middle-end/31710 (ICE in in set_value_range, at tree-vrp.c:278)
./:	PR middle-end/31710
	* tree.c (build_distinct_type_copy): If TYPE_MIN_VALUE or
	TYPE_MAX_VALUE exist, convert them to the new type.
testsuite/:
	PR middle-end/31710
	* gcc.c-torture/compile/pr31710.c: New test.

From-SVN: r124237
2007-04-27 20:47:24 +00:00
Zdenek Dvorak 30251f7a3a tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info if it claims to be available.
* tree-cfgcleanup.c (cleanup_tree_cfg): Verify dominance info
	if it claims to be available.
	* tree-ssa-dce.c (remove_dead_stmt): Mark cfg as altered when
	edge is redirected.
	(perform_tree_ssa_dce): Always free postdominators.

From-SVN: r124236
2007-04-27 20:40:26 +00:00
Richard Henderson 48f46219bd predicates.md (aligned_memory_operand): Mark as define_special_predicate.
* config/alpha/predicates.md (aligned_memory_operand): Mark
        as define_special_predicate.
        (unaligned_memory_operand, normal_memory_operand): Likewise.
        (reg_or_unaligned_mem_operand): Remove.
        (any_memory_operand): Match the documentation and check for
        non-renumbered pseudos during reload.
        * config/alpha/alpha.c (alpha_secondary_reload): Rename from
        alpha_secondary_reload_class, update to new interface, make static.
        Handle CQImode like HImode.  Remove FP subreg check.
        (alpha_expand_mov): Use replace_equiv_address.
        (alpha_expand_mov_nobwx): Use any_memory_operand.
        (TARGET_SECONDARY_RELOAD): New.
        * config/alpha/alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Remove.
        (SECONDARY_OUTPUT_RELOAD_CLASS): Remove.
        * config/alpha/sync.md (I12MODE, I48MODE, modesuffix): Move ...
        * config/alpha/alpha.md: ... here.
        (RELOAD12, reloadmode): New.
        (movcqi): New.
        (reload_in<RELOAD12>): Macro-ize from reload_inqi, reload_inhi.
        Don't handle the aligned case here.
        (reload_out<RELOAD12>): Macro-ize from reload_outqi, reload_outhi.
        (reload_in<I12MODE>_aligned): Macro-ize from reload_inqi_help,
        reload_inhi_help.  Don't expect a scratch register.
        (reload_out<I12MODE>_aligned): Macro-ize from reload_outqi_help,
        reload_outhi_help.
        * config/alpha/alpha-protos.h (alpha_secondary_reload_class): Remove.

From-SVN: r124220
2007-04-27 07:47:57 -07:00
Richard Guenther 64e8a9f04e tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.
2007-04-27  Richard Guenther  <rguenther@suse.de>
  
        * tree-ssa-forwprop.c (get_prop_dest_stmt): Fix comment typo.

From-SVN: r124218
2007-04-27 13:45:54 +00:00
Richard Guenther 3aef2dbd2e re PR tree-optimization/30965 (Fails to tree-combine conditions in COND_EXPRs)
2007-04-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/30965
	PR tree-optimization/30978
	* Makefile.in (tree-ssa-forwprop.o): Depend on $(FLAGS_H).
        * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove.
        (find_equivalent_equality_comparison): Likewise.
        (simplify_cond): Likewise.
        (get_prop_source_stmt): New helper.
        (get_prop_dest_stmt): Likewise.
	(can_propagate_from): Likewise.
	(remove_prop_source_from_use): Likewise.
        (combine_cond_expr_cond): Likewise.
        (forward_propagate_comparison): New function.
        (forward_propagate_into_cond): Rewrite to use fold for
        tree combining.
	(tree_ssa_forward_propagate_single_use_vars): Call
	forward_propagate_comparison to propagate comparisons.

	* gcc.dg/tree-ssa/pr30978.c: New testcase.
	* gcc.dg/tree-ssa/bool-3.c: Remove XFAIL, explain why.
	* gcc.dg/tree-ssa/ssa-fre-4.c: Use char instead of bool
	* gcc.dg/strict-overflow-5.c: Adjust tree dump scanning.

From-SVN: r124217
2007-04-27 13:43:42 +00:00
Richard Guenther 891fc5e9f1 re PR tree-optimization/31715 (Array calculation done incorrectly)
2007-04-27  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/31715
	* tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Make
	sure to do computation on the offset in an appropriate
	signed type.

	* gcc.dg/Warray-bounds-4.c: New testcase.

From-SVN: r124216
2007-04-27 11:42:43 +00:00
Richard Sandiford 8c74fb06c6 reload.h (elimination_target_reg_p): Declare.
gcc/
	* reload.h (elimination_target_reg_p): Declare.
	* reload.c (find_reloads): Don't apply the reg_rtx move
	optimization if the SET_DEST satisfies elimination_target_reg_p.
	* reload1.c (elimination_target_reg_p): New function.
	(gen_reload): In the move/add2 fallback, make sure that op0
	does not overlap the destination register.

From-SVN: r124215
2007-04-27 11:39:47 +00:00