[Bug tree-optimization/18519] [4.0 Regression] ICE: Segmentation fault with optimization

cvs-commit at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sun Jan 9 22:05:00 GMT 2005


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-09 22:05 -------
Subject: Bug 18519

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	apple-ppc-branch
Changes by:	dalej@gcc.gnu.org	2005-01-09 22:05:17

Modified files:
	gcc            : tree-cfg.c tree-dfa.c tree-flow-inline.h 
	                 tree-flow.h tree-pretty-print.c 
	                 tree-ssa-loop-im.c tree-ssa-loop-manip.c 
	                 tree-ssa-operands.c tree-ssa-operands.h 
	                 tree-vectorizer.c tree-pass.h tree-ssa-ccp.c 
	                 tree-ssa-loop-ch.c tree-ssa-loop.c 
	                 tree-ssa-phiopt.c tree-into-ssa.c 
	                 tree-optimize.c tree-ssa.c tree-ssa-dce.c 
	                 ChangeLog.apple-ppc 

Log message:
	2005-01-09  Dale Johannesen  <dalej@apple.com>
	
	Radar 3941146
	Following patches from mainline:
	2004-10-27  Daniel Berlin <dberlin@dberlin.org>
	
	Fix PR tree-optimization/17133
	
	* tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must
	def kill operand.
	
	* tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT.
	(get_v_must_def_result_ptr): Modify for new structure of
	v_must_defs array.
	(get_v_must_def_kill_ptr): New.
	(op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs.
	(op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT.
	(op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT.
	(op_iter_init): Initialize new mustu members.
	(op_iter_next_mustdef): New function.
	(op_iter_init_mustdef): Ditto.
	
	* tree-flow.h (rewrite_def_def_chains): New function.
	
	* tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands.
	(ssa_mark_def_sites): Ditto.
	(rewrite_stmt): Ditto.
	(ssa_rewrite_stmt): Ditto.
	(rewrite_blocks): Factor out from rewrite_into_ssa.
	(mark_def_block_sites): Ditto.
	(rewrite_def_def_chains): New function, just rewrites def-def
	chains without phi node insertion.
	
	* tree-pass.h (TODO_fix_def_def_chains): New todo flag.
	
	* tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains.
	
	* tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that
	they include the rhs now.
	
	* tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became
	V_MUST_DEF_RESULT.
	
	* tree-ssa-dce.c (mark_operand_necessary): Add phionly argument.
	Update callers.
	(mark_really_necessary_kill_operand_phis): New function.
	(perform_tree_ssa_dce): Call it.
	(pass_dce): Add TODO_fix_def_def_chains.
	(pass_cd_dce): Ditto.
	
	* tree-ssa-loop-im.c (determine_max_movement): Look at kills as
	well.
	(rewrite_mem_refs): Ditto.
	
	* tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills
	as well.
	
	* tree-ssa-operands.c (allocate_v_may_def_optype):
	v_may_def_operand_type_t became v_def_use_operand_type_t.
	(allocate_v_must_def_optype) Ditto.
	(finalize_ssa_v_must_defs): Update for new operand type, as well
	as setting the use portion as well.
	(copy_virtual_operands): Copy the kill operand as well.
	(create_ssa_artficial_load_stmt): V_MUST_DEF_OP became
	V_MUST_DEF_RESULT.
	
	* tree-ssa-operands.h (v_may_def_operand_type): Renamed to
	v_def_use_operand_type.
	(v_must_def_optype_d): Use v_def_use_operand_type.
	(V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_*
	(V_MUST_DEF_KILL_*): New macros.
	(struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i
	members.
	Rename existing must_i and num_v_must members to mustd_i and
	num_v_mustd.
	(SSA_OP_VMUSTDEFKILL): New flag.
	(SSA_OP_VIRTUAL_KILLS): New flag.
	(SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS.
	(SSA_OP_ALL_KILLS): New flag.
	(FOR_EACH_SSA_MUSTDEF_OPERAND): New macro.
	
	* tree-ssa.c (verify_ssa): Verify virtual kills as well.
	
	* tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP
	became V_MUST_DEF_RESULT.
	(rename_variables_in_bb): Rename kill pointer as well.
	
	* tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the
	immediate uses.
	
	2004-10-28  Daniel Berlin  <dberlin@dberlin.org>
	
	* tree-into-ssa.c (rewrite_virtual_phi_arguments): New function.
	(rewrite_blocks): Modify argument, and use it to decide which
	function to call.
	(rewrite_def_def_chains): Call rewrite_blocks with true here.
	(rewrite_into_ssa): and call it with false here.
	
	2004-11-16  Daniel Berlin  <dberlin@dberlin.org>
	
	Fix PR tree-optimization/18519
	
	* tree-optimize (execute_todo): Add case for TODO_cleanup_cfg.
	* tree-pass.h: Add TODO_cleanup_cfg.
	* tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg.
	(ccp_finalize): Remove call to cleanup_cfg.
	* tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func.
	(pass_cd_dce): Ditto.
	(perform_tree_ssa_dce): Remove call to cleanup_cfg,
	dump_function_to_file.
	* tree-ssa-loop-ch.c (copy_loop_headers): Remove call
	to cleanup_cfg.
	(pass_ch): Add TODO_cleanup_cfg.
	* tree-ssa-loop.c (tree_ssa_loop_done): Remove call to
	cleanup_cfg.
	(pass_loop_done): Add TODO_cleanup_cfg.
	* tree-ssa-phiopt.c (pass_phiopt): Ditto.
	(tree_ssa_phiopt): Remove call to cleanup_cfg.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-cfg.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.278.2.15&r2=1.1.4.278.2.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-dfa.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.222.2.10&r2=1.1.4.222.2.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-flow-inline.h.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.68.2.7&r2=1.1.2.68.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-flow.h.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.197.2.15&r2=1.1.4.197.2.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pretty-print.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.78.2.9&r2=1.1.2.78.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop-im.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.9&r2=1.1.4.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop-manip.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.12&r2=1.1.4.13
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-operands.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.17.2.13&r2=1.1.2.17.2.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-operands.h.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.2.6.6&r2=1.1.2.2.6.7
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vectorizer.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.26&r2=1.1.4.27
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-pass.h.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.19.2.11&r2=1.1.2.19.2.12
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-ccp.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.148.2.5&r2=1.1.2.148.2.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop-ch.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=2.3.4.5&r2=2.3.4.6
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.11.2.10&r2=1.1.2.11.2.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-phiopt.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.9.2.8&r2=1.1.2.9.2.9
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-into-ssa.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.1.2.9&r2=1.1.2.1.2.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-optimize.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.134.2.13&r2=1.1.4.134.2.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.4.216.2.10&r2=1.1.4.216.2.11
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-dce.c.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.83.2.7&r2=1.1.2.83.2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.apple-ppc.diff?cvsroot=gcc&only_with_tag=apple-ppc-branch&r1=1.1.2.261&r2=1.1.2.262



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18519



More information about the Gcc-bugs mailing list