2008-07-28  Richard Guenther  <rguenther@suse.de>

	Merge with mainline @138201.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-07-27  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (expand_omp_atomic_fetch_op): Fix a merge glitch.

2008-07-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>

	* config/spu/spu.c (spu_gimplify_va_arg_expr): Unshare the args
	and skip trees.

2008-07-27  Richard Guenther  <rguenther@suse.de>

	* tree-eh.c (lookup_expr_eh_region): Do not allocate a tree
	annotation.
	* tree-dfa.c (create_tree_common_ann): Set eh region to -1.
	* tree-flow.h (struct tree_ann_common_d): Reorder rn member
	to pack with type.

2008-07-26  Richard Guenther  <rguenther@suse.de>

	Merge with mainline @138159.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-07-26  Richard Guenther  <rguenther@suse.de>

	* gimple.h (CALL_STMT_CANNOT_INLINE_P): Remove.

2008-07-26  Jan Hubicka  <jh@suse.cz>

	* ipa-inline.c (cgraph_decide_inlining_of_small_function): Use
	gimple_call_set_cannot_inline.
	(cgraph_decide_inlining): Likewise.
	(cgraph_decide_inlining_incrementally): Likewise.

2008-07-26  Richard Guenther  <rguenther@suse.de>

	Merge with mainline @138092.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-07-26  Richard Guenther  <rguenther@suse.de>

	Merge with mainline @138091.

2008-07-25  Richard Guenther  <rguenther@suse.de>

	* config/ia64/ia64.c (ia64_gimplify_va_arg): Unshare valist
	before reusing it.

2008-07-25  Andreas Krebbel  <krebbel1@de.ibm.com>

	* tree-tailcall.c (process_assignment): Prevent tail call
	optimization if the modes of the return types don't match.

2008-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* tree-inline.c (expand_call_inline): Allow casts in assert.

2008-07-24  Richard Guenther  <rguenther@suse.de>

	PR middle-end/36885
	* tree.c (walk_tree_1): Also walk CHANGE_DYNAMIC_TYPE_EXPR operands.
	* gimple.c (gss_for_code): GIMPLE_CHANGE_DYNAMIC_TYPE is GSS_WITH_OPS.
	* gsstruct.def (GSS_CHANGE_DYNAMIC_TYPE): Remove. 

2008-07-24  Richard Guenther  <rguenther@suse.de>

	* tree-sra.c (sra_walk_expr): Also handle CONVERT_EXPR.
	(sra_walk_gimple_assign): Correctly detect assigns we can handle.
	* expr.c (expand_expr_real_1): Pass MOVE_NONTEMPORAL to
	expand_assignment.

2008-07-23  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dse.c (get_kill_of_stmt_lhs): Tuplify correct.
	* gimple-pretty-print.c (dump_gimple_label): Dump non-local flag.
	* tree.h (maybe_fold_stmt_addition): Declare.
	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Export.
	(fold_gimple_assign): Return the new rhs instead of modifying the stmt.
	(fold_stmt): Deal with that.
	(fold_stmt_inplace): Only replace the rhs of a statement if
	that has enough operand space to hold the new operands.
	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
	POINTER_PLUS_EXPR handling.

2008-07-23  Richard Guenther  <rguenther@suse.de>

	* tree-eh.c (record_in_goto_queue): Fix bootstrap with
	--disable-checking.

2008-07-23  Aldy Hernandez  <aldyh@redhat.com>

	Merge with mainline @138071.
	
	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.
			
2008-07-23  Richard Guenther  <rguenther@suse.de>

	* tree-eh.c (union treemple): Add tree * member.
	(find_goto_replacement): Adjust.
	(replace_goto_queue_cond_clause): Use the address of the
	individual labels as unique identifier.
	(replace_goto_queue_1): Use the statement as unique identifier
	for GIMPLE_GOTO.
	(record_in_goto_queue): Add checking.
	(record_in_goto_queue_label): Adjust.
	(maybe_record_in_goto_queue): Likewise.
	(do_goto_redirection): Get leh_tf_state.
	(lower_try_finally_nofallthru): Pass it.
	(lower_try_finally_onedest): Likewise.
	(lower_try_finally_copy): Likewise.
	(lower_try_finally_switch): Likewise.

2008-07-22  Aldy Hernandez  <aldyh@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimple_do_not_emit_location_p): New.
	(gimple_set_do_not_emit_location): New.
	(annotate_one_with_location): Do not annotate if
	gimple_do_not_emit_location_p.
	(gimplify_cond_expr): Do not optimize if the COND_EXPR and
	GOTO_EXPR have different locations.
	Do not emit location information for some GIMPLE_COND's.

2008-07-22  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (ccp_fold): Use gimple_expr_type.
	(fold_gimple_assign): Likewise.
	* tree-inline.c (remap_gimple_op_r): Do not set TREE_BLOCK on
	non-statements.  Recurse to copy_tree_body_r with NULL block.
	(copy_phis_for_bb): Likewise.
	* tree-cfg.c (move_stmt_op): Do not set TREE_BLOCK on
	non-statements.

2008-07-22  Diego Novillo  <dnovillo@google.com>
	    Richard Guenther  <rguenther@suse.de>

	* tree-ssa-dom.c (hashable_expr_equal_p): Do nothing if
	either TYPE0 or TYPE1 is NULL.

2008-07-21  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-alias-warnings.c (struct gimple_tree_map): New.
	Change every use of struct tree_map to struct gimple_tree_map.
	(gimple_tree_map_eq): New.
	(gimple_tree_map_hash): New.
	* tree-ssa-ccp.c (evaluate_stmt): Remove stale FIXME note.
	* gimplify.c (gimplify_expr): Remove stale FIXME note.
	* tree-ssa-pre.c: Remove stale references to GIMPLE_MODIFY_STMT.
	* tree-vect-generic.c (expand_vector_operations_1): Change
	FIXME tuples to NOTE.

2008-07-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-phiprop.c (propagate_with_phi): Only look through
	SSA_NAME copies.

2008-07-21  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_init_constructor): Clear TREE_SIDE_EFFECTS
	on the remaining empty constructor.

2008-07-21  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (fold_gimple_assign): Handle pointer conversions
	like fold_stmt_r did.
	* gimple-pretty-print.c (dump_gimple_cond): Place semicolons
	where trunk did.
	* tree-inline.c (copy_bb): Do not insert GIMPLE_NOPs.

2008-07-21  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36826
	* tree-ssa-pre.c (eliminate): Do not eliminate in unused
	statements.

2008-07-20  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_expr_type): The expression type is always
	the base type of an integral sub-type result type.
	* tree-eh.c (replace_goto_queue_cond_clause): Copy the sequence
	before handing it off to gsi_insert_seq_after.
	* tree-sra.c (insert_edge_copies_seq): Make sure to not keep an
	uninserted but marked for update sequence.

2008-07-20  Richard Guenther  <rguenther@suse.de>

	* gimple.c (DEFTREECODE): Add REALIGN_LOAD_EXPR.

2008-07-19  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.h (get_constant_value_id): Declare.
	(vn_constant_eq_with_type): Make sure an integral type is
	never equal to a non-integral type.
	(vn_hash_constant_with_type): Adjust.
	* tree-ssa-sccvn.c (get_constant_value_id): New function.
	* tree-ssa-pre.c (get_expr_value_id): For newly created
	constant value-ids make sure to add the expression to its
	expression-set.

2008-07-18  Jakub Jelinek  <jakub@redhat.com>

	* gimple.c (gimple_regimplify_operands): Moved to...
	* gimplify.c (gimple_regimplify_operands): ... here.  Rework using
	lower_omp_1 regimplification code, if regimplified LHS of
	GIMPLE_ASSIGN or GIMPLE_CALL requires simpler RHS, create a temporary.
	* omp-low.c (gimple_regimplify_operands): Use
	gimple_regimplify_operands.

2008-07-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-reassoc.c (get_rank): For single rhs process its
	operands.

2008-07-18  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-loop-niter.c (expand_simple_operations): Expand
	as much as trunk does.
	* tree-ssa-sccvn.c (simplify_binary_expression): For comparisons
	always expand the first operand.

2008-07-18  Jakub Jelinek  <jakub@redhat.com>

	* gimple-pretty-print.c (dump_gimple_cond): Print a semicolon if
	goto or else goto has been printed.
	(dump_gimple_goto): Print as goto instead of gimple_goto, print
	a semicolon at the end.
	(dump_gimple_asm): Print a semicolon at the end.

	* gimplify.c (gimplify_cond_expr): If COND_EXPR has both non-trivial
	THEN and ELSE statements and the THEN sequence can't fallthru, avoid
	adding label_cont and jump to it.

2008-07-18  Aldy Hernandez  <aldyh@redhat.com>

	* Makefile.in.  Remove TREE_GIMPLE_H definition.
	Rename all TREE_GIMPLE_H uses to GIMPLE_H.
	Depend on tree-iterator.h when necessary.
	* tree-into-ssa.c: Include gimple.h instead of tree-gimple.h.
	* tree-complex.c: Same.
	* cgraphbuild.c: Same.
	* cgraph.c: Same.
	* builtins.c: Same.
	* tree-ssa-sccvn.c: Same.
	* tree-ssa-copyrename.c: Same.
	* tree-nomudflap.c: Same.
	* tree-call-cdce.c: Same.
	* ipa-pure-const.c: Same.
	* ipa-utils.c: Same.
	* tree-ssa-alias.c: Same.
	* tree-ssa-sink.c: Same.
	* langhooks.c: Same.
	* function.c: Same.
	* ipa-type-escape.c: Same.
	* tree-affine.c: Same.
	* c-typeck.c: Same.
	* tree-dfa.c: Same.
	* tree-ssa-pre.c: Same.
	* tree-sra.c: Same.
	* c-omp.c: Same.
	* tree-ssa-dce.c: Same.
	* tree-nested.c: Same.
	* tree-ssa.c: Same.
	* tree-inline.c: Same.
	* tree-iterator.c: Same.
	* c-gimplify.c: Same.
	* tree-vect-generic.c: Same.
	* tree-flow.h: Same.
	* tree-ssa-structalias.c: Same.
	* ipa-struct-reorg.c: Same.
	* tree-ssa-reassoc.c: Same.
	* config/alpha/alpha.c: Same.
	* config/s390/s390.c: Same.
	* config/m32c/m32c.c: Same.
	* config/spu/spu.c: Same.
	* config/sparc/sparc.c: Same.
	* config/i386/i386.c: Same.
	* config/sh/sh.c: Same.
	* config/xtensa/xtensa.c: Same.
	* config/stormy16/stormy16.c: Same.
	* config/ia64/ia64.c: Same.
	* config/rs6000/rs6000: Same.
	* config/mips/mips.c: Same.
	* varpool.c: Same.
	* cgraphunit.c: Same.  Include tree-iterator.h
	* tree-mudflap.c: Same.
	* gimplify.c: Same.
	* c-decl.c: Same.
	* omp-low.c: Same.
	* c-semantics: Same.
	* gimple-low.c: Same.
	* tree-gimple.c: Merge contents into...
	* gimple.c: ...here.
	* tree-gimple.h: Merge contents into...
	* gimple.h: ...here.

2008-07-17  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (expand_omp_atomic_pipeline): Call
	force_gimple_operand_gsi on RHS for IADDR initialization.

	* gimplify.c (gimplify_cond_expr): Push statements in between
	gimple_push_condition and gimple_pop_condition into a new
	gimple_seq, append it after gimple_pop_condition cleanups.

2008-07-17  Richard Guenther  <rguenther@suse.de>

	* tree-complex.c (init_dont_simulate_again): Handle
	{REAL,IMAG}PART_EXPR correctly.
	* gimple-pretty-print.c (dump_unary_rhs): Dump VIEW_CONVERT_EXPR
	and ASSERT_EXPR the same way as on trunk.
	* tree-ssa-dom.c (initialize_hash_element): Do not record
	the type for single rhs assigns.
	(hashable_expr_equal_p): Deal with NULL types.
	(eliminate_redundant_computations): Use print_gimple_expr.
	* tree-vrp.c (stmt_interesting_for_vrp): Fix builtin call check.
	(vrp_visit_stmt): Likewise.
	* tree-ssa-forwprop.c (simplify_gimple_switch): Fix typo.

2008-07-16  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/36792
	* tree-ssa-pre.c (get_or_alloc_expr_for): Handle unary
	expressions inserted by SCCVN.
	(do_SCCVN_insertion): Adjust comment.
	(execute_pre): Allow insertion for FRE again.

	* tree-ssa-sccvn.c (simplify_unary_expression): Deal with
	the GIMPLE_SINGLE_RHS statemens we get.
	(init_scc_vn): Init VN_INFO->expr to NULL.

2008-07-16  Richard Guenther  <rguenther@suse.de>

	Revert
	2008-07-16  Richard Guenther  <rguenther@suse.de>
	* tree-ssa-pre.c (get_constant_for_value_id): Only hand out
	constants of the correct type.
	(fully_constant_expression): Pass the required type to
	get_constant_for_value_id.

	* tree-ssa-sccvn.h (vn_hash_constant_with_type): New function.
	(vn_constant_eq_with_type): Likewise.
	* tree-ssa-sccvn.c (vn_constant_eq): Use vn_constant_eq_with_type.
	(get_or_alloc_constant_value_id): Use vn_hash_constant_with_type.
	* tree-ssa-pre.c (pre_expr_eq): Use vn_constant_eq_with_type.
	(pre_expr_hash): Use vn_hash_constant_with_type.
	(get_representative_for): Use constants as their representative.
	(fully_constant_expression): Use constant parts in expressions
	directly.

2008-07-15  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-propagate.c (valid_gimple_expression_p): Remove.
	* tree-ssa-propagate.h (valid_gimple_expression_p): Remove.
	* tree-eh.c: Factor out common code in operation_could_trap_p and 
	stmt_could_throw_1_p into...
	(operation_could_trap_helper_p): New.
	* gimplify.c (gimplify_expr): Rephrase fixme.
	* tree-mudflap.c: Remove fixme.

2008-07-17  Jakub Jelinek  <jakub@redhat.com>

	* tree-eh.c (collect_finally_tree): Call collect_finally_tree_1
	with region as second argument for GIMPLE_TRY_FINALLY's cleanup.

	* gimplify.c (gimplify_expr): Call gimple_try_set_catch_is_cleanup
	for TRY_CATCH_EXPR.

2008-07-16  Jakub Jelinek  <jakub@redhat.com>

	* tree-gimple.c (is_gimple_reg_rhs): Don't check for CALL_EXPRs
	with side-effects.
	* gimple.c (extract_ops_from_tree): Remove assert.
	* gimplify.c (is_gimple_reg_or_call_rhs): New function.
	(rhs_predicate_for): Return it instead of is_gimple_reg_rhs.
	(gimplify_expr): Handle is_gimple_reg_or_call_rhs.

	* tree-ssa-threadedge.c (record_temporary_equivalences_for_stmts,
	simplify_control_stmt_condition): Pass stmt instead of NULL as second
	argument to simplify callback.

	* tree-vect-patterns.c (vect_recog_pow_pattern): Don't call
	gimple_call_set_lhs with lhs of last_stmt.
	* tree-vect-transform.c (vectorizable_call): Build a new dummy
	assignment, replace the call with it and move over stmt_info.

	* tree-ssa-loop-niter.c (infer_loop_bounds_from_array): Use
	is_gimple_assign instead of gimple_code () == GIMPLE_ASSIGN and
	is_gimple_call instead of gimple_code () == GIMPLE_CALL.
	* tree-ssa-propagate.c (update_call_from_tree, substitute_and_fold):
	Likewise.
	* tree-ssa-sccvn.c (visit_use): Likewise.
	* tree-eh.c (stmt_could_throw_p): Likewise.
	* tree-optimize.c (execute_fixup_cfg): Likewise.
	* omp-low.c (check_omp_nesting_restrictions, scan_omp_1_stmt,
	optimize_omp_library_calls): Likewise.
	* tree-ssa-loop-im.c (movement_possibility, stmt_cost,
	determine_invariantness_stmt): Likewise.
	* tree-ssa-phiprop.c (phivn_valid_p, phiprop_insert_phi,
	propagate_with_phi): Likewise.
	* tree-ssa-ccp.c (get_default_value, surely_varying_stmt_p,
	ccp_fold_builtin, gimplify_and_update_call_from_tree): Likewise.
	* ipa-struct-reorg.c (is_result_of_mult, create_general_new_stmt):
	Likewise.
	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
	* tree-object-size.c (alloc_object_size, call_object_size,
	check_for_plus_in_loops): Likewise.
	* tree-ssa.c (verify_ssa): Likewise.
	* predict.c (expr_expected_value_1, tree_bb_level_predictions,
	tree_estimate_probability): Likewise.
	* tree-cfg.c (verify_stmt): Likewise.
	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
	copy_loop_headers): Likewise.
	* tree-ssa-ter.c (is_replaceable_p): Likewise.
	* ipa-prop.c (ipa_count_arguments, ipa_compute_jump_functions):
	Likewise.
	* tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p,
	record_equivalences_from_stmt, optimize_stmt,
	get_lhs_or_phi_result): Likewise.
	* tree-ssa-sink.c (is_hidden_global_store): Likewise.
	* tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
	* value-prof.c (gimple_divmod_fixed_value,
	gimple_mod_pow2, gimple_mod_subtract): Likewise.
	* tree-predcom.c (name_for_ref, find_looparound_phi,
	replace_ref_with, remove_name_from_operation): Likewise.
	* tree-ssa-math-opts.c (is_division_by, execute_cse_reciprocals,
	execute_cse_sincos, execute_convert_to_rsqrt): Likewise.
	* tree-complex.c (expand_complex_move, expand_complex_operations_1):
	Likewise.
	* tree-outof-ssa.c (identical_copies_p): Likewise.
	* tree-ssa-pre.c (is_exception_related): Likewise.
	* tree-sra.c (scalarize_use, scalarize_copy): Likewise.
	* tree-ssa-alias.c (count_uses_and_derefs, update_alias_info_1,
	is_escape_site): Likewise.
	* lambda-code.c (can_put_in_inner_loop,
	cannot_convert_bb_to_perfect_nest): Likewise.
	* tree-tailcall.c (find_tail_calls, eliminate_tail_call): Likewise.
	* ipa-type-escape.c (look_for_casts_stmt, is_cast_from_non_pointer):
	Likewise.
	* tree-vect-transform.c (vectorizable_reduction): Likewise.
	* tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts):
	Likewise.
	* tree-ssa-phiopt.c (nt_init_block): Likewise.
	* tree-ssa-structalias.c (find_func_aliases): Likewise. 
	* tree-ssa-forwprop.c (can_propagate_from,
	forward_propagate_comparison, simplify_not_neg_expr,
	simplify_gimple_switch, tree_ssa_forward_propagate_single_use_vars):
	Likewise.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-dse.c (get_kill_of_stmt_lhs, dse_possible_dead_store_p,
	dse_optimize_stmt, execute_simple_dse): Likewise.
	* tree-ssa-loop-ivopts.c (find_interesting_uses_op,
	find_interesting_uses_stmt, rewrite_use_nonlinear_expr): Likewise.
	* tree-vrp.c (stmt_overflow_infinity, vrp_stmt_computes_nonzero,
	register_edge_assert_for_2, register_edge_assert_for,
	find_assert_locations, check_all_array_refs,
	remove_range_assertions, stmt_interesting_for_vrp, vrp_visit_stmt,
	simplify_stmt_using_ranges): Likewise.
	* tree-ssa-loop-prefetch.c (gather_memory_references): Likewise.
	* tree-ssa-copy.c (may_propagate_copy_into_stmt,
	propagate_tree_value_into_stmt): Likewise.
	* tree-inline.c (copy_bb, expand_call_inline,
	gimple_expand_calls_inline, fold_marked_statements): Likewise.

	* tree-ssa-copyrename.c (rename_ssa_copies): Use
	gimple_assign_ssa_name_copy_p.

	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Check
	gimple_assign_rhs_code, type of rhs is TREE_TYPE (lhs), update
	rhs_code.

2008-07-16  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c (get_constant_for_value_id): Only hand out
	constants of the correct type.
	(fully_constant_expression): Pass the required type to
	get_constant_for_value_id.

2008-07-15  Aldy Hernandez  <aldyh@redhat.com>

	Merge with mainline @137837.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-07-15  Jakub Jelinek  <jakub@redhat.com>

	* common.opt (-fgimple-conversion=): Remove.

	* tree-affine.c (aff_combination_expand): Tuplify.
	* cfgexpand.c (gimple_assign_rhs_to_tree): Remove prototype.
	* tree-outof-ssa.c (gimple_assign_rhs_to_tree): Likewise.
	* tree-gimple.h (gimple_assign_rhs_to_tree): New prototype.

2008-07-15  Aldy Hernandez  <aldyh@redhat.com>

	* tree.h: Remove gimple_unreachable_1 prototype.

2008-07-15  Aldy Hernandez  <aldyh@redhat.com>

	* Makefile.in (gimple-dummy.o): Remove.
	* gimple-dummy.c: Delete.
	* tree-ssa-propagate.c (valid_gimple_expression_p): Change
	gimple_unreachable to gcc_unreachable.
	* tree-affine.c (aff_combination_expand): Same.
	* tree-vect-transform.c (vectorizable_call): Same.

2008-07-15  Richard Guenther  <rguenther@suse.de>

	* gimplify.c (gimplify_expr): Gimplify an unused volatile load
	properly.

2008-07-15  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-pre.c: Tuplify.  Enable FRE and PRE.
	(execute_pre): Disable SCCVN insertion even for FRE.
	* tree-ssa-sccvn.h (copy_reference_ops_from_call): Declare.
	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Export.
	(vn_get_expr_for): Handle more expression kinds.
	(visit_reference_op_load): Properly set a value id for
	inserted names.
	(simplify_binary_expression): Use valid_gimple_rhs_p instead of
	valid_gimple_expression_p.
	(simplify_unary_expression): Likewise.
	(process_scc): Clear the cached/simplified expressions at the
	start of the iteration.
	(free_scc_vn): Do not clear SSA_NAME_VALUE.
	(run_scc_vn): Remove broken special case in printing VNs.
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow
	gimple-min-invariants and SSA names.

2008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>

	* config/s390/s390.c: (s390_gimplify_va_arg) Unshare the args* tree.

2008-07-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-math-opts.c (execute_cse_reciprocals): Process
	SSA_NAME defs of calls.
	* gimple-pretty-print.c (dump_unary_rhs): Do not prefix
	CONSTRUCTOR with [constructor].

2008-07-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/alpha/alpha.c (va_list_skip_additions): Change
	GIMPLE_STMT_OPERAND to TREE_OPERAND.

2008-07-14  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-transform.c (vect_create_data_ref_ptr): Update comment.
	* config/s390/s390.c (s390_va_start): Build MODIFY_EXPR instead of
	GIMPLE_MODIFY_STMT.
	(s390_gimplify_va_arg): Use gimplify_assign.
	* config/sh/sh.c (sh_va_start): Build MODIFY_EXPR instead of
	GIMPLE_MODIFY_STMT.
	(sh_gimplify_va_arg_expr): Use gimplify_assign.
	* config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
	* config/spu/spu.c (spu_va_start): Build MODIFY_EXPR instead of
	GIMPLE_MODIFY_STMT.
	(spu_gimplify_va_arg_expr): Use gimplify_assign.
	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
	Build MODIFY_EXPR instead of GIMPLE_MODIFY_STMT.
	(xstormy16_gimplify_va_arg_expr): Likewise.  Use gimplify_assign.
	* config/xtensa/xtensa.c (xtensa_va_start): Build MODIFY_EXPR
	instead of GIMPLE_MODIFY_STMT.
	(xtensa_gimplify_va_arg_expr): Use gimplify_assign.

2008-07-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/alpha/alpha.c (va_list_skip_additions): Rename
	GIMPLE_MODIFY_STMT to MODIFY_EXPR.
	(alpha_va_start): Same.
	(alpha_gimplify_va_arg_1): Use gimplify_assign.
	(alpha_gimplify_va_arg): Same.
	* config/frv/frv.c (frv_expand_builtin_va_start): Rename
	GIMPLE_MODIFY_STMT to MODIFY_EXPR.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Use gimplify_assign.
	* config/alpha/mips.c (mips_va_start): Rename GIMPLE_MODIFY_STMT to
	MODIFY_EXPR or use gimplify_assign when appropriate.
	(mips_gimplify_va_arg_expr): Same.

2008-07-14  Aldy Hernandez  <aldyh@redhat.com>

	* config/rs6000/rs6000.c (rs6000_va_start): Change
	GIMPLE_MODIFY_STMT to MODIFY_EXPR.
	(rs6000_gimplify_va_arg): Use gimplify_assign.
	Build GIMPLE_GOTO directly.

2008-07-14  Aldy Hernandez  <aldyh@redhat.com>

	* tree-dump.c (dequeue_and_dump): Remove GIMPLE_MODIFY_STMT case.
	* tree-ssa-loop-niter.c (simplify_replace_tree): Remove GIMPLE_STMT_P
	call.
	* tree-pretty-print.c (dump_generic_node): Remove any references to
	GIMPLE_MODIFY_STMT, GIMPLE_STMT_P, GIMPLE_TUPLE_P.
	(op_prio): Same.
	(op_symbol_code): Same.
	* java/java-gimplify.c (java_gimplify_expr): Same.
	(java_gimplify_modify_expr): Same.
	* java/java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
	* tree-tailcall.c (find_tail_calls): Update comment.
	* tree.c (tree_code_class_string): Remove "gimple_stmt".
	(tree_node_kind): Remove "gimple statments".
	(tree_code_size): Remove tcc_gimple_stmt.
	(make_node_stat): Same.
	(copy_node_stat): Remove any references to
	GIMPLE_MODIFY_STMT, GIMPLE_STMT_P, GIMPLE_TUPLE_P, tcc_gimple_stmt,
	TS_GIMPLE_STATEMENT, GENERIC_TREE_OPERAND, GENERIC_TREE_TYPE,
	GIMPLE_TUPLE_HAS_LOCUS_P, GIMPLE_STMT_LOCUS, GIMPLE_STMT_BLOCK,
	IS_GIMPLE_STMT_CODE_CLASS, GIMPLE_STMT_BLOCK.
	(expr_align): Same.
	(tree_node_structure): Same.
	(build2_stat): Same.
	(set_expr_locus): Same.
	(walk_tree_1): Same.
	(tree_block): Same.
	(build_gimple_modify_stmt_stat): Remove.
	(expr_location): Remove.
	(set_expr_location): Remove.
	(expr_hash_location): Remove.
	(expr_locus): Remove.
	(expr_filename): Remove.
	(expr_lineno): Remove.
	(generic_tree_operand): Remove.
	(generic_tree_type): Remove.
	* tree.h (tree_code_class): Remove tcc_gimple_stmt.
	(IS_GIMPLE_STMT_CODE_CLASS): Remove.
	(struct gimple_stmt): Remove.
	(GIMPLE_STMT_CHECK): Remove.
	(TREE_OPERAND_CHECK): Remove GIMPLE_TUPLE_P.
	(TREE_CHAIN): Same.
	(GIMPLE_STMT_OPERAND_CHECK): Remove.
	(GIMPLE_STMT_OPERAND_CHECK): Remove.
	(GIMPLE_STMT_P): Remove.
	(GIMPLE_TUPLE_P): Remove.
	(GIMPLE_TUPLE_HAS_LOCUS_P): Remove.
	(GENERIC_TREE_OPERAND): Remove.
	(GENERIC_TREE_TYPE): Remove.
	(GENERIC_NEXT): Remove.
	(IS_CONVERT_EXPR_CODE_P): Rename GENERIC_TREE_TYPE to TREE_TYPE.
	(MOVE_NONTEMPORAL): Remove GIMPLE_MODIFY_STMT_CHECK.
	Remove GIMPLE_STMT_OPERAND, GIMPLE_STMT_LOCUS, GIMPLE_STMT_BLOCK.
	(EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION, EXPR_LOCUS,
	EXPR_FILENAME, EXPR_LINENO): Do ont call functions.
	(CAN_HAVE_LOCATION_P): Remove GIMPLE_STMT_P.
	(union tree_node): Remove gstmt.
	(build_gimple_modify_stmt*): Remove.
	(expr_location, set_expr_location, expr_has_location,
	expr_locus, expr_filename, expr_lineno, generic_tree_operand,
	generic_tree_type): Remove.
	* tree-scalar-evolution.c (follow_ssa_edge): Update comment.
	(interpret_condition_phi): Same.
	* gimple.h (gimplify_assign): New.
	* builtins.c, fold-const.c, omp-low.c, tree-ssa-dse.c, tree-gimple.c,
	tree-ssa-math-opts.c, tree-nrv.c, gimple-low.c, dwarf2out.c,
	expr.c, tree-parloops.c, matrix-reorg.c, c-decl.c, tree-eh.c,
	c-pretty-print.c, langhooks.c, function.c, tree-affine.c,
	gimplify.c, tree.def, cfgexpand.c, tree-predcom.c, print-tree.c,
	tree-ssa-ter.c, tree-ssa.c, tree-inline.c, gimple.c, gimple.h,
	tree-cfg.c, config/i386/i386.c, stmt.c, tree-ssa-operands.c)
	Remove any references to
	GIMPLE_MODIFY_STMT, GIMPLE_STMT_P, GIMPLE_TUPLE_P, tcc_gimple_stmt,
	TS_GIMPLE_STATEMENT, GENERIC_TREE_OPERAND, GENERIC_TREE_TYPE,
	GIMPLE_TUPLE_HAS_LOCUS_P, GIMPLE_STMT_LOCUS, GIMPLE_STMT_BLOCK,
	IS_GIMPLE_STMT_CODE_CLASS, GIMPLE_STMT_BLOCK.
	Call gimplify_assign or generate a GIMPLE_ASSIGN directly when
	appropriate.

2008-07-14  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (gimple_cond_pred_to_tree): New function.
	(gimple_to_tree) <case GIMPLE_COND>: Use it.
	(release_stmt_tree): New function.
	(expand_gimple_cond): Call just gimple_cond_pred_to_tree
	instead of gimple_to_tree, ggc_free pred before returning.
	(expand_gimple_tailcall): Call release_stmt_tree.
	(expand_gimple_basic_block): Call release_stmt_tree instead
	of ggc_free.

	* gimplify.c (internal_get_tmp_var, gimplify_decl_expr,
	gimplify_init_ctor_eval, gimplify_target_expr): Call ggc_free
	on the INIT_EXPR.

2008-07-14  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-ccp.c (ccp_fold): Move ADDR_EXPR handing to
	GIMPLE_SINGLE_RHS case.
	* tree-ssa-ifcombine.c (ifcombine_iforif): Fix typo.

2008-07-14  Jakub Jelinek  <jakub@redhat.com>

	* system.h (CONST_CAST2): Avoid using a union for all GCCs <= 4.0.x.

2008-07-12  Diego Novillo  <dnovillo@google.com>

	* tree-loop-distribution.c: Tuplify.
	* tree-ssa-propagate.c (substitute_and_fold): Remove
	stale FIXME tuples note.

2008-07-11  Jakub Jelinek  <jakub@redhat.com>

	* tree-dump.c (dump_options): Don't set TDF_RHS_ONLY for -all.

	* omp-low.c (lower_omp_1): Only use rhs_predicate_for if
	GIMPLE_SINGLE_RHS.

	* tree-vect-analyze.c (vect_determine_vectorization_factor): Handle
	GIMPLE_CALL with non-NULL lhs.
	(vect_build_slp_tree): Likewise.  Fix reversed check for references.
	* tree-vectorizer.c (stmt_vec_info_htab, stmt_vec_info_eq,
	stmt_vec_info_hash, init_stmt_vec_info_htab,
	free_stmt_vec_info_htab): Remove.
	(stmt_vec_info_vec): New variable.
	(init_stmt_vec_info_vec, free_stmt_vec_info_vec): New functions.
	(new_loop_vec_info): Clear stmt uid before calling
	set_vinfo_for_stmt.
	(vect_is_simple_use): Handle GIMPLE_CALL with non-NULL lhs.
	(vectorize_loops): Call {init,free}_stmt_vec_info_vec instead of
	{init,free}_stmt_vec_info_htab.
	* tree-parloops.c (parallelize_loops): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
	* tree-vectorizer.h (stmt_vec_info_htab): Removed.
	(init_stmt_vec_info_htab, free_stmt_vec_info_htab): Remove
	prototypes.
	(stmt_vec_info_vec): New extern decl.
	(init_stmt_vec_info_vec, free_stmt_vec_info_vec): New prototypes.
	(vinfo_for_stmt, set_vinfo_for_stmt): Rewritten using stmt uid
	and vector instead of a hash table.
	* tree-vect-patterns.c (vect_recog_pow_pattern): Request
	a GIMPLE_CALL with non-NULL lhs instead of GIMPLE_ASSIGN.
	(vect_pattern_recog_1): Use is_gimple_call instead of comparing
	gimple_code with GIMPLE_CALL.
	* gimple.c (gimple_rhs_class_table): Use GIMPLE_SINGLE_RHS for
	DOT_PROD_EXPR and VEC_COND_EXPR.
	* tree-vect-transform.c (vect_get_slp_vect_defs): Use gimple_get_lhs
	instead of gimple_assign_lhs.
	(get_initial_def_for_induction): Use build_int_cst even for
	pointers.  Use POINTER_PLUS_EXPR for POINTER_TYPE_P (scalar_type).
	(vect_get_vec_def_for_operand): Use is_gimple_call instead of
	comparing gimple_code with GIMPLE_CALL.
	(vectorizable_call): Likewise.  Use gimple_call_lhs instead of
	gimple_assign_lhs.  Build a vector of arguments, use
	gimple_build_call_vec.
	(vect_get_vec_def_for_stmt_copy): Use gimple_get_lhs.
	(vectorizable_live_operation): Handle GIMPLE_SINGLE_RHS operands.

2008-07-11  Doug Kwan  <dougkwan@google.com>

	* gimple-dummy.c (vectorizable_induction, vectorizable_type_promotion,
	vectorizable_type_demotion, vectorizable_conversion,
	vectorizable_operation, vectorizable_assignment,
	vectorizable_load, vectorizable_call, vectorizable_store,
	vectorizable_condition, vectorizable_reduction,
	vectorizable_live_operation, vectorizable_function,
	vect_estimate_min_profitable_iters, vect_model_simple_cost,
	vect_model_store_cost, vect_model_load_cost, vect_transform_loop):
	Remove DUMMY_FNs.
	* tree-ssa-loop.c (gate_tree_vectorize): Reenable vectorizer.
	* tree-vectorizer.c (vect_is_simple_use): Fix handling of
	GIMPLE_NOP.
	* tree-vectorizer.h (vectorizable_load, vectorizable_store,
	vectorizable_operation, vectorizable_type_promotion,
	vectorizable_type_demotion, vectorizable_conversion,
	vectorizable_assignment, vectorizable_call, vectorizable_condition,
	vectorizable_live_operation, vectorizable_reduction,
	vectorizable_induction): Adjust prototypes.
	* tree-vect-transform.c (vectorizable_load, vectorizable_store,
	vectorizable_operation, vectorizable_type_promotion,
	vectorizable_type_demotion, vectorizable_conversion,
	vectorizable_assignment, vectorizable_call, vectorizable_condition,
	vectorizable_live_operation, vectorizable_reduction,
	vectorizable_induction, vect_transform_stmt,
	vect_create_data_ref_ptr, vect_create_addr_base_for_vector_ref,
	vect_get_vec_def_for_operand, vect_init_vector,
	vect_finish_stmt_generation, vect_create_epilog_for_reduction,
	get_initial_def_for_reduction, cost_for_stmt,
	vect_estimate_min_profitable_iters, vect_model_reduction_cost,
	vect_cost_strided_group_size, vect_model_load_cost, bump_vector_ptr,
	vect_get_constant_vectors, vect_get_slp_vect_defs,
	vect_get_slp_defs, get_initial_def_for_induction,
	vect_get_vec_def_for_stmt_copy, vect_get_vec_defs,
	vectorizable_function, vect_gen_widened_results_half,
	vect_permute_store_chain, vect_setup_realignment,
	vect_permute_load_chain, vect_transform_strided_load,
	vect_is_simple_cond, vect_build_loop_niters,
	vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
	vect_do_peeling_for_loop_bound, vect_gen_niters_for_prolog_loop,
	vect_do_peeling_for_alignment, vect_create_cond_for_align_checks,
	vect_create_cond_for_alias_checks, vect_loop_versioning,
	vect_remove_stores, vect_schedule_slp_instance,
	vect_transform_loop): Tuplify.

2008-07-10  Richard Guenther  <rguenther@suse.de>

	* gimple.h (gimple_assign_ssa_name_copy_p): Declare.
	(gimple_has_lhs): New function.
	* gimple.c (gimple_assign_ssa_name_copy_p): New function.
	* tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove
	redundant gimple_set_location call.
	* gimple-iterator.c (gsi_remove): Do not free stmt operands.
	* tree-ssa-structalias.c (find_func_aliases): Correctly let
	all things with pointers escape.
	* tree-pass.h (TDF_RHS_ONLY): New flag.
	* diagnostic.h (print_gimple_expr): Declare.
	* gimple-pretty-print.c (print_gimple_expr): New function.
	(dump_gimple_assign): Dump the RHS as expression if TDF_RHS_ONLY.
	(dump_gimple_call): Likewise.
	(dump_gimple_cond): Likewise.
	* tree-ssa-propagate.c (fold_predicate_in): Use print_gimple_expr.
	* tree-ssa-sccvn.c (visit_use): Use gimple_has_lhs.
	Use print_gimple_expr.  Handle tcc_expression correctly.

2008-07-09  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
	(push_gimplify_context): Don't allocate bind_expr_stack,
	temp_htab nor c itself here.  Add c argument.
	(pop_gimplify_context): Allow bind_expr_stack being NULL.  Check
	c->temp_htab instead of optimize whether htab_delete should be called.
	Don't free c.
	(gimple_push_bind_expr): Create bind_expr_stack lazily.
	(lookup_tmp_var): Create temp_htab lazily.
	(gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
	gimplify_body, force_gimple_operand): Adjust push_gimplify_context
	callers.
	* omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
	lower_omp_ordered, lower_omp_critical, lower_omp_for,
	create_task_copyfn, lower_omp_taskreg, execute_lower_omp): 
	* tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Likewise.
	* tree-sra.c (generate_element_init): Likewise.
	* tree-mudflap.c (execute_mudflap_function_ops,
	execute_mudflap_function_decls): Likewise.
	* tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
	* tree-gimple.h (struct gimplify_ctx): New type.
	(push_gimplify_context): Adjust prototype.

	* gimple.h (gimple_rhs_class_table): New extern decl.
	(get_gimple_rhs_class): Change into inline.
	* gimple.c (get_gimple_rhs_class): Removed.
	(gimple_rhs_class_table): New variable.

2008-07-09  Doug Kwan  <dougkwan@google.com>
	    Diego Novillo  <dnovillo@google.com>

	* tree-ssa-ccp.c (fold_stmt_r): Remove gcc_unreachable
	call from COND_EXPR handler.
	* tree-if-conv.c: Tuplify.
	* gimple.c (gimple_could_trap_p_1): Factor out of ...
	(gimple_could_trap_p): ... here.
	Call it.
	(gimple_assign_rhs_could_trap_p): New.
	* gimple.h (gimple_assign_rhs_could_trap_p): Declare.
	* tree-ssa-operands.c (get_expr_operands): Handle
	COND_EXPR.

2008-07-08  Jakub Jelinek  <jakub@redhat.com>

	Merge with mainline @137633.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-07-08  Jakub Jelinek  <jakub@redhat.com>

	* tree-cfg.c (remove_useless_stmts_cond): Avoid calling
	fold_binary.

2008-07-07  Jakub Jelinek  <jakub@redhat.com>

	* gimple-pretty-print.c (dump_gimple_return): Don't print space
	after return if return has no argument.
	(dump_gimple_seq): Don't print newline after last statement in
	the sequence.
	(dump_gimple_fmt, dump_gimple_try, dump_gimple_omp_for,
	dump_gimple_omp_single, dump_gimple_omp_sections,
	dump_gimple_omp_block, dump_gimple_omp_critical,
	dump_gimple_omp_parallel, dump_gimple_omp_task): Use
	newline_and_indent after dump_gimple_seq instead of INDENT.
	(dump_gimple_bind): Likewise.  If there are no bind vars, don't
	print two newlines before the sequence, just one.
	* tree-cfg.c (dump_function_to_file): Fix dumping lowered gimple
	before CFG is built.

2008-07-07  Diego Novillo  <dnovillo@google.com>

	* tree-vrp.c (ssa_name_nonnegative_p): Tuplify.
	(ssa_name_nonzero_p): Tuplify.
	(extract_range_from_comparison): Tidy.
	(vrp_evaluate_conditional_warnv_with_ops): Tidy.
	(vrp_evaluate_conditional): Change STMT argument to gimple.
	Update all users.
	(simplify_stmt_for_jump_threading): Change WITHIN_STMT argument
	to gimple.
	Update all users.
	(identify_jump_threads): Tidy.
	* tree-tailcall.c (find_tail_calls): Remove stale FIXME note.
	* tree.c (tree_node_structure): Likewise.
	* tree.h (struct tree_base): Likewise.
	(struct gimple_stmt): Likewise.
	* builtins.c (expand_builtin_memcpy): Likewise.
	(expand_builtin_memset_args): Likewise.
	* tree-chrec.h (build_polynomial_chrec): Do not initialize VAL.
	* tree-ssa-ccp.c (fold_stmt_r): Do not handle COND_EXPR.
	(fold_stmt): Remove #if 0 code.
	* tree-ssa-dom.c (EXTRA_DETAILS): Remove.
	Update all users.
	(hashable_expr_equal_p): Remove stale FIXME note.
	(simplify_stmt_for_jump_threading): Convert WITHIN_STMT
	argument to gimple.  Update all users.
	* tree-ssa-propagate.c: Include gimple.h
	(get_rhs): Remove.
	(set_rhs): Remove.
	(fold_predicate_in): Tuplify.
	* Makefile.in (tree-ssa-propagate.o): Add dependency on
	GIMPLE_H.
	* tree-ssa-propagate.h (get_rhs, set_rhs): Remove.
	* tree-parloops.c (create_parallel_loop): Remove FIXME
	tuples note.
	* tree-eh.c (lookup_stmt_eh_region): Remove FIXME tuples
	editorial note.
	* cfgexpand.c (gimple_to_tree): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Tidy.
	Do not handle GIMPLE_BIND.
	* tree-inline.c (remap_gimple_op_r): Remove stale FIXME notes.
	* tree-optimize.c (execute_fixup_cfg): Likewise.
	* tree-flow.h (struct tree_ann_common_d): Remove stale
	FIXME tuples notes.
	(tree_vrp_evaluate_conditional): Change last argument type to
	gimple.  Update all users.
	(thread_across_edge): Likewise.
	* gimple.c (gimple_has_side_effects): If any argument has
	TREE_SIDE_EFFECTS set, assert that S has volatile operands.
	(gimple_rhs_has_side_effects): Likewise.
	* gimple.h (gimple_phi_capacity): Remove stale FIXME tuples note.
	* tree-cfg.c (group_case_labels): Remove FIXME tuples note.
	Assert that the new size is smaller than the old size.
	(remove_useless_stmts_warn_notreached): Remove #if 0 code.
	(remove_useless_stmts_cond): Remove stale FIXME tuples note.
	(remove_useless_stmts_1): Likewise.
	(verify_types_in_gimple_assign): Likewise.
	* passes.c (init_optimization_passes): Re-enable
	pass_ipa_increase_alignment.
	* tree-ssa-threadedge.c
	(record_temporary_equivalences_from_stmts_at_dest):
	Change SIMPLIFY to accept two arguments of type gimple.
	Update all users.
	(simplify_control_stmt_condition): Likewise.
	(thread_accross_edge): Likewise.
	* tree-ssa-operands.c (add_call_clobber_ops): Re-enable
	calls to ipa_reference_get_not_read_globals and
	ipa_reference_get_not_written_global.

2008-07-07  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-dom.c: Remove FIXME tuples.

2008-07-07  Aldy Hernandez  <aldyh@redhat.com>

	* tree-cfg.c (verify_types_in_gimple_assign): Remove
	FIXME tuples.

2008-07-04  Jakub Jelinek  <jakub@redhat.com>

	* cfgexpand.c (gimple_to_tree) <case GIMPLE_CALL>: Copy
	CALL_EXPR_VA_ARG_PACK.

	* gimple.c (gimple_build_bind): Set gimple_bind_block rather
	than gimple_block.
	(gimple_copy) <case GIMPLE_BIND>: Don't unshare gimple_bind_block.

	* gimple.h (GF_ASM_INPUT, GF_ASM_VOLATILE, GF_CALL_CANNOT_INLINE,
	GF_CALL_FROM_TRUNK, GF_CALL_RETURN_SLOT_OPT, GF_CALL_TAILCALL,
	GF_CALL_VA_ARG_PACK, GF_OMP_PARALLEL_COMBINED, GF_OMP_RETURN_NOWAIT,
	GF_OMP_SECTION_LAST, GF_PREDICT_TAKEN): Change from static const ints
	into enum values.
	(struct gimple_statement_base): Move subcode after flags to make it
	16-bit aligned.

	* tree-ssa-structalias.c (find_func_aliases): Handle ADDR_EXPR
	as GIMPLE_SINGLE_RHS instead of GIMPLE_UNARY_RHS.

	* tree-ssa-operands.c (get_expr_operands): Don't handle
	OMP_FOR, OMP_PARALLEL, OMP_TASK, OMP_SECTIONS and PREDICT_EXPR
	here.

	* gimple.def (GIMPLE_PREDICT): New.
	* gimple.h: Update comment above GF_* flags.
	(GF_PREDICT_TAKEN): New.
	(gimple_build_predict): New prototype.
	(gimple_predict_predictor, gimple_predict_outcome,
	gimple_predict_set_predictor, gimple_predict_set_outcome): New
	inlines.
	* gimple.c (gss_for_code): Handle GIMPLE_PREDICT.
	(gimple_size, walk_gimple_op): Likewise.
	(gimple_build_predict): New function.
	* gimple-pretty-print.c (dump_gimple_stmt): Handle GIMPLE_PREDICT.
	* predict.c (tree_bb_level_predictions): Likewise.
	* cfgexpand.c (gimple_to_tree): Likewise.
	* tree-inline.c (estimate_num_insns): Likewise.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
	* gimple-low.c (lower_stmt): Likewise.
	* tree-cfg.c (verify_types_in_gimple_seq_2): Likewise.
	(verify_types_in_gimple_stmt): Likewise.  Don't handle PREDICT_EXPR.
	* gimplify.c (gimplify_expr): Gimplify PREDICT_EXPR into
	GIMPLE_PREDICT.
	* expr.c (expand_expr_real): Don't handle PREDICT_EXPR.

2008-07-04  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-forwprop.c (rhs_to_tree): Remove fixme.
	(forward_propagate_into_cond): Add comment.
	(forward_propagate_into_gimple_cond): Add comment.
	(forward_propagate_addr_expr_1): Enable optimization.

2008-07-04  David Edelsohn  <edelsohn@gnu.org>

	Revert:
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Unshare t.

	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Unshare reg.

2008-07-03  David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Unshare t.

2008-07-03  Doug Kwan  <dougkwan@google.com>

	* gimple-dummy.c (vectorizable_function): New dummy.
	(vect_pattern_recog): Remove dummy.
	* tree-vectorizer.h (vect_recog_func_ptr): Adjust types for tuples.
	* tree-vect-patterns.c (File): Re-enable all code.
	(widened_name_p): Tuplify.
	(vect_recog_temp_ssa_var): New.
	(vect_recog_dot_prod_pattern): Tuplify.
	(vect_recog_widen_mult_pattern): Same.
	(vect_recog_pow_pattern): Same.
	(vect_recog_widen_sum_pattern): Same.
 	(vect_pattern_recog_1): Tuplify. Factor out code to create SSA
	temporaries to vect_recog_temp_ssa_var.  Remove code for building
	assignment statement.
	(vect_pattern_recog): Tuplify.

2008-07-03  Janis Johnson  <janis187@us.ibm.com>
            David Edelsohn  <edelsohn@gnu.org>

	* config/rs6000/rs6000.c (rs6000_va_start): Unshare valist.
	(rs6000_gimplify_va_arg): Unshare valist, reg, addr, ovf.

2008-07-03  Jakub Jelinek  <jakub@redhat.com>

	* tree-inline.c (remap_gimple_op_r): Remap TREE_BLOCK of
	expressions.

	* tree-switch-conversion.c (gen_inbound_check): Force RHS to be
        gimple operand.  Use fold_build* instead of build*.
	(build_arrays): Likewise.  Convert RHS to LHS's type.

	* tree-switch-conversion.c (struct switch_conv_info): Change
	arr_ref_first and arr_ref_last to gimple.
	(check_range, check_final_bb, gather_default_values,
	build_constructors, build_one_array, build_arrays, gen_def_assign,
	fix_phi_nodes, gen_inbound_check, process_switch, do_switchconv):
	Tuplify.
	(create_temp_arrays): Formatting.

	* gimple.h (gimple_try_set_kind): New inline function.
	* tree-eh.c (same_handler_p, optimize_double_finally,
	refactor_eh_r, refactor_eh): Tuplify.
	* passes.c (init_optimization_passes): Reenable pass_refactor_eh.

2008-07-02  Jakub Jelinek  <jakub@redhat.com>

	* tree-parloops.c (struct reduction_info): Change reduc_stmt,
	reduc_phi, keep_res and new_phi field types to gimple.
	(struct elv_data): Add info field.
	(reduction_phi, loop_parallel_p, take_address_of,
	initialize_reductions, eliminate_local_variables_stmt,
	eliminate_local_variables, expr_invariant_in_region_p,
	separate_decls_in_region_name, separate_decls_in_region_stmt,
	create_phi_for_local_result, create_call_for_reduction_1,
	create_call_for_reduction, create_loads_for_reductions,
	create_final_loads_for_reduction, create_stores_for_reduction,
	create_loads_and_stores_for_name, separate_decls_in_region,
	canonicalize_loop_ivs, transform_to_exit_first_loop,
	create_parallel_loop, gen_parallel_loop,
	loop_has_vector_phi_nodes, parallelize_loops): Tuplify.
	* tree-cfg.c (gimple_duplicate_sese_tail): Tuplify.
	(move_block_to_fn): Don't call gsi_next after calling
	remove_phi_node.

2008-07-02  Aldy Hernandez  <aldyh@redhat.com>
	    Richard Guenther  <rguenther@suse.de>

	* tree-ssa-forwprop.c (can_propagate_from): Exclude loads
        from decls explicitly.
	(gate_forwprop): Enable.

2008-07-02  Jakub Jelinek  <jakub@redhat.com>

	* tree-vectorizer.h (vinfo_for_stmt): Use htab_find_slot_with_hash.
	(set_vinfo_for_stmt): Likewise.  If info is NULL, delete entry from
	hash table.
	* tree-vectorizer.c (stmt_vec_info_eq, stmt_vec_info_hash): New
	functions.
	(init_stmt_vec_info_htab): Use them instead of htab_hash_pointer
	and htab_eq_pointer.
	(free_stmt_vec_info): Free stmt_info only after set_vinfo_for_stmt
	call.

	Merge with mainline @137346.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.
	* builtins.c (gimple_rewrite_call_expr): Fix -Wc++-compat and/or
	-Wcast-qual warnings.
	* gimple.c (gimple_alloc_stat, gimple_build_omp_for,
	gimple_range_check_failed, gimple_copy): Likewise.
	* tree-mudflap.c (mx_xfn_xform_decls): Likewise.
	* tree-nested.c (convert_nonlocal_reference_stmt,
	convert_local_reference_stmt): Likewise.
	* gimple-iterator.c (gsi_insert_before_without_update,
	gsi_insert_after_without_update): Likewise.
	* tree-ssa-loop-im.c (init_lim_data, get_lim_data,
	clear_lim_data): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Likewise.
	* tree-vrp.c (check_all_array_refs): Likewise.
	* value-prof.c (histogram_eq): Likewise.
	* cgraphbuild.c (record_reference): Don't handle OMP_PARALLEL
	and OMP_TASK here.
	(build_cgraph_edges): Handle GIMPLE_OMP_{PARALLEL,TASK}.
	* cgraph.c (cgraph_add_new_function): Call gimple_register_cfg_hooks
	instead of tree_register_cfg_hooks.
	* omp-low.c (finalize_task_copyfn): Ensure the new function's
	body is a gimple_seq with just GIMPLE_BIND in it.
	(scan_omp_1_stmt): Fix -Wc++-compat and/or -Wcast-qual warnings.
	* tree-cfg.c (move_stmt_op, have_similar_memory_accesses_1,
	ref_base_address_1): Likewise.
	(move_stmt_r): Handle gimple_block updating.
	* tree-ssa-alias.c (update_alias_info_1): Tuplify.
	(update_alias_info): Likewise.
	* tree-switch-conversion.c: Stub out temporarily.

2008-06-30  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-forwprop.c: Remove obsolete comment.
	(get_prop_source_stmt): Wrap call to gimple_assign_lhs with a
	TREE_TYPE.
	(forward_propagate_comparison): Use build2 instead of
	fold_binary.
	
2008-06-27  Diego Novillo  <dnovillo@google.com>

	* cfgexpand.c (gimple_assign_rhs_to_tree): Factor out of ...
	(gimple_to_tree): ... here.
	Update comments referring to mainline merge.
	* tree-ssa-ter.c: Tuplify.
	* tree-outof-ssa.c (gimple_assign_rhs_to_tree): Declare.
	(replace_use_variable): Call it.
	(rewrite_trees): Tuplify.
	(remove_ssa_form): Call it.
	* gimple.h: Tidy some formatting.
	* ipa-struct-reorg.c: Include gimple.h
	* Makefile.in (ipa-struct-reorg.o): Add dependency on
	GIMPLE_H.

2008-06-27  Richard Guenther  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_get_expr_for): New function.
	(vuses_to_vec): Tuplify.
	(copy_vuses_from_stmt): Likewise.
	(vdefs_to_vec): Likewise.
	(copy_vdefs_from_stmt): Likewise.
	(shared_vuses_from_stmt): Likewise.
	(copy_reference_ops_from_call): New function split out from
	copy_reference_ops_from_ref.
	(create_reference_ops_from_call): New function.
	(shared_reference_ops_from_call): Likewise.
	(get_def_ref_stmt_vuses): Tuplify.
	(vn_reference_lookup): Likewise.
	(vn_nary_op_lookup_stmt): New function.
	(vn_nary_op_insert_stmt): Likewise.
	(vn_phi_lookup): Tuplify.
	(vn_phi_insert): Likewise.
	(defs_to_varying): Likewise.
	(visit_unary_op): Likewise.
	(visit_binary_op): Likewise.
	(visit_reference_op_call): New function.
	(visit_reference_op_load): Tuplify.
	(visit_reference_op_store): Likewise.
	(visit_phi): Likewise.
	(stmt_has_constants): New function.
	(simplify_binary_expression): Tuplify.
	(simplify_unary_expression): Likewise.
	(try_to_simplify): Likewise.
	(visit_use): Likewise.
	(compare_ops): Likewise.
	(DFS): Likewise.
	(run_scc_vn): Likewise.
	* tree-ssa-sccvn.h (shared_vuses_from_stmt): Adjust prototype.
	(copy_vuses_from_stmt): Likewise.
	(vn_get_expr_for): Declare.
	(vn_nary_op_lookup_stmt): Likewise.
	(vn_nary_op_insert_stmt): Likewise.
	* tree-dfa.c (get_single_def_stmt): Tuplify.
	(get_single_def_stmt_from_phi): Likewise.
	(get_single_def_stmt_with_phi): Likewise.
	* tree-ssa-pre.c (do_SCCVN_insertion): Use vn_get_expr_for.
	(eliminate): Likewise.
	(execute_pre): Enable SCCVN.
	(gate_fre): Enable.
	* tree-flow.h (get_single_def_stmt): Adjust prototype.
	(get_single_def_stmt_from_phi): Likewise.
	(get_single_def_stmt_with_phi): Likewise.
	(vn_lookup_or_add_with_stmt): Likewise.
	(vn_lookup_with_stmt): Likewise.
	* gimple.c (gimple_fold): Fix.
	* tree-vn.c (vn_add): Disable call to add_to_value.
	(vn_add_with_vuses): Likewise.
	(vn_lookup_with_stmt): Tuplify.
	(vn_lookup_or_add_with_stmt): Likewise.

2008-06-27  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (gimple_cond_get_ops_from_tree): Handle TRUTH_NOT_EXPR.
	
2008-06-25  Diego Novillo  <dnovillo@google.com>

	* gimple.h (enum gimple_rhs_class): Move from tree-gimple.h
	(struct gimple_statement_base): Change CODE field to 8
	bits.
	Change SUBCODE field to 16 bits.
	(gimple_set_subcode): Move to gimple.c.
	(gimple_subcode): Remove.
	(gimple_expr_type): Handle GIMPLE_ASSIGN, GIMPLE_CALL and
	GIMPLE_COND explicitly.
	Move earlier in the file.
	(gimple_expr_code): New.
	(gimple_omp_subcode): New.
	(gimple_omp_set_subcode): New.
	(gimple_omp_return_nowait_p): Call gimple_omp_subcode.
	(gimple_omp_section_last_p): Likewise.
	(gimple_omp_parallel_combined_p): Likewise.
	(gimple_assign_rhs_code): New.
	(gimple_assign_set_rhs_code): New.
	(gimple_assign_cast_p): Call gimple_assign_rhs_code.
	Handle VIEW_CONVERT_EXPR.
	(gimple_call_tail_p): Access subcode field directly.
	(gimple_call_cannot_inline_p): Likewise.
	(gimple_call_return_slot_opt_p): Likewise.
	(gimple_call_from_thunk_p): Likewise.
	(gimple_call_va_arg_pack_p): Likewise.
	(gimple_call_copy_flags): Likewise.
	(gimple_cond_code): Likewise.
	(gimple_cond_set_code): Likewise.
	(gimple_cond_make_false): Likewise.
	(gimple_cond_make_true): Likewise.
	(gimple_asm_volatile_p): Likewise.
	(gimple_asm_input_p): Likewise.
	(gimple_eh_filter_must_not_throw): Likewise.
	(gimple_eh_filter_set_must_not_throw): Likewise.
	(gimple_try_kind): Likewise.
	(gimple_try_catch_is_cleanup): Likewise.
	(gimple_wce_cleanup_eh_only): Likewise.

	* tree-vrp.c (simplify_div_or_mod_using_ranges): Call
	gimple_assign_set_rhs_code instead of gimple_set_subcode.
	(simplify_abs_using_ranges): Likewise.
	* tree-complex.c (init_dont_simulate_again): Call
	gimple_expr_code instead of gimple_subcode.
	(complex_visit_stmt): Likewise.
	(expand_complex_move): Call gimple_assign_rhs_code
	instead of gimple_subcode.
	(expand_complex_operations_1): Likewise.
	* value-prof.c (gimple_divmod_fixed_value): Likewise.
	(gimple_mod_pow2): Likewise.
	(gimple_mod_subtract): Likewise.
	(gimple_divmod_values_to_profile): Likewise.
	* tree-ssa-alias-warnings.c (find_alias_site_helper):
	Call gimple_assign_cast_p.
	(already_warned_in_frontend_p): Likewise.
	* gimple.def: Add comments warning about code orderings.
	* omp-low.c (expand_omp_taskreg): Call gimple_omp_set_subcode.
	(expand_omp_atomic_fetch_op): Call gimple_assign_rhs_code.
	* tree-gimple.c (get_gimple_rhs_class): Move to gimple.c
	(get_gimple_rhs_num_ops): Likewise.
	(gimple_assign_rhs_code): Move to gimple.h.
	* tree-gimple.h (enum gimple_rhs_class): Move to gimple.h.
	* tree-ssa-ccp.c (fold_gimple_assign): Call
	gimple_assign_rhs_code instead of gimple_subcode.
	* tree-stdarg.c (va_list_counter_bump): Likewise.
	(check_all_va_list_escapes): Likewise.
	(execute_optimize_stdarg): Likewise.
	* tree-ssa-math-opts.c (is_division_by): Likewise.
	(replace_reciprocal): Likewise.
	(execute_cse_reciprocals): Likewise.
	(execute_convert_to_rsqrt): Likewise.
	* tree-ssa-dom.c (initialize_hash_element): Likewise.
	(simple_iv_increment_p): Likewise.
	(gimple_assign_unary_useless_conversion_p): Likewise.
	* tree-ssa-alias.c (is_escape_site): Call gimple_assign_cast_p.
	* predict.c (expr_expected_value_1): Call gimple_assign_rhs_code
	instead of gimple_subcode.
	* tree-eh.c (tree_could_trap_p): Call gimple_expr_code
	instead of gimple_subcode.
	* ipa-type-escape.c (is_array_access_through_pointer_and_index):
	Call gimple_assign_rhs_code instead of gimple_subcode.
	(check_assign): Likewise.
	* gimplify.c (gimplify_omp_parallel): Call gimple_omp_set_subcode
	instead of gimple_set_subcode.
	* tree-mudflap.c (mf_xform_derefs): Call gimple_assign_rhs_code
	instead of gimple_subcode.
	* tree-ssa-forwprop.c (get_prop_source_stmt): Likewise.
	(can_propagate_from): Likewise.
	(remove_prop_source_from_use): Likewise.
	(forward_propagate_addr_into_variable_array): Likewise.
	* tree-object-size.c (plus_stmt_object_size): Likewise.
	(collect_object_sizes_for): Likewise.
	(check_for_plus_in_loops_1): Likewise.
	(check_for_plus_in_loops): Likewise.
	* gimple.c (gimple_set_subcode): Move from gimple.h
	(gimple_check_failed): Access subcode field directly.
	(gimple_assign_single_p): Call gimple_assign_rhs_code
	instead of gimple_subcode.
	(gimple_assign_unary_nop_p): Likewise.
	(gimple_get_lhs): Change argument type to const_gimple.
	(gimple_could_trap_p): Call gimple_assign_rhs_code
	instead of gimple_subcode.
	(get_gimple_rhs_class): Move from tree-gimple.c.
	(get_gimple_rhs_num_ops): Likewise.
	* tree-ssa-structalias.c (update_alias_info): Call
	gimple_assign_rhs_code instead of gimple_subcode.
	(find_func_aliases): Likewise.
	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
	Likewise.

2008-06-25  Doug Kwan  <dougkwan@google.com>

	* gimple-dummy.c: (vect_free_slp_tree) Remove dummy.
	(vect_analyze_loop): Same.
	(vectorizable_induction): New dummy.
	(vectorizable_type_promotion): Same.
	(vectorizable_type_demotion): Same.
	(vectorizable_conversion): Same.
	(vectorizable_operation): Same.
	(vectorizable_assignment): Same.
	(vectorizable_load): Same.
	(vectorizable_call): Same.
	(vectorizable_store): Same.
	(vectorizable_condition): Same.
	(vectorizable_reduction): Same.
	(vectorizable_live_operation): Same.
	(vect_estimate_min_profitable_iters): Same.
	(vect_model_simple_cost): Same.
	(vect_model_store_cost): Same.
	(vect_model_load_cost): Same.
	(vect_pattern_recog): Same.
	* tree-vectorizer.h (struct _stmt_vec_info): Change fields FIRST_DR
	and NEXT_DR from tree to gimple type.
	(vectorizable_load): Change type of parameter STMT to gimple.
	(vectorizable_store): Same.
	(vectorizable_operation): Same.
	(vectorizable_type_promotion): Same.
	(vectorizable_type_demotion): Same.
	(vectorizable_conversion): Same.
	(vectorizable_assignment): Same.
	(vectorizable_function): Same.
	(vectorizable_call): Same.
	(vectorizable_condition): Same.
	(vectorizable_live_operation): Same.
	(vectorizable_reduction): Same.
	(vectorizable_induction): Same.
	* tree-vect-analyze.c (File): Re-enable all previously disabled code.
	(vect_determine_vectorization_factor): Tuplify.
	(vect_analyze_operations): Same.
	(exist_non_indexing_operands_for_use_p): Same.
 	(vect_analyze_scalar_cycles_1): Same.
	(vect_insert_into_interleaving_chain): Same.
 	(vect_same_range_drs): Same.
 	(vect_compute_data_ref_alignment): Same.
	(vect_verify_datarefs_alignment): Same.
 	(vector_alignment_reachable_p): Same.
	(vect_enhance_data_refs_alignment): Same.
	(vect_analyze_group_access): Same.
	(vect_analyze_data_ref_access): Same.
	(vect_free_slp_tree): Same.
 	(vect_get_and_check_slp_defs): Same.
	(vect_build_slp_tree): Same.
 	(vect_print_slp_tree): Same.
 	(vect_mark_slp_stmts): Same.
	(vect_analyze_slp_instance): Same.
 	(vect_analyze_slp): Same.
 	(vect_detect_hybrid_slp_stmts): Same.
	(vect_analyze_data_refs): Same.
	(vect_mark_relevant): Same.
	(process_use): Same.
 	(vect_mark_stmts_to_be_vectorized): Same.
	(vect_can_advance_ivs_p): Same.
 	(vect_get_loop_niters): Same.
 	(vect_analyze_loop_form): Same.

2008-06-25  Diego Novillo  <dnovillo@google.com>

	* tree-vectorizer.c (hash_gimple_stmt): Remove.
	(eq_gimple_stmt): Remove.
	(init_stmt_vec_info_htab): Use htab_hash_pointer and
	htab_eq_pointer for STMT_VEC_INFO_HTAB.

2008-06-24  Doug Kwan  <dougkwan@google.com>

	* gimple-dummy.c (vect_set_verbosity_level): Remove.
	(vectorize_loops): Same.
	(vect_free_slp_tree): New dummy.
	(vect_analyze_loop): Same.
	(vect_transform_loop): Same.
	* tree-vectorize.c (hashtab.h): New include.
	(File): Re-enable all previously commented out code.	
	(stmt_vec_info_htab): New var.
	(rename_variables_in_bb): Tuplify.
	(slpeel_update_phis_for_duplicate_loop): Same.
	(slpeel_update_phi_nodes_for_guard1): Same.
	(slpeel_update_phi_nodes_for_guard2): Same.
 	(slpeel_make_loop_iterate_ntimes): Same.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Same.
 	(slpeel_add_loop_guard): Same.
	(slpeel_can_duplicate_loop_p): Same.
	(set_prologue_iterations): Same.
 	(find_loop_location): Same.
	(new_stmt_vec_info): Same.
	(hash_gimple_stmt): New function.
	(init_stmt_vec_info_htab): New function.
	(free_stmt_vec_info_htab): New function.
	(free_stmt_vec_info): Replace statement info with hash table entry.
	(new_loop_vec_info): Tuplify.
	(destroy_loop_vec_info): Same.
	(vect_supportable_dr_alignment): Same
	(vect_is_simple_use): Same.
	(supportable_widening_operation): Same.
	(supportable_narrowing_operation): Same.
	(report_vec_op): New function. Code factored out from ...
	(vect_is_simple_reduction): Call it. Tuplify.
	(vectorize_loops): Set up and tear down stmt_vec_info hash table.
	* tree-vectorizer.h (struct _slp_tree): Change statement fields
	(struct _loop_vec_info): Same.
	(struct _stmt_vec_info):
	(nested_in_vect_loop): Re-enable.
	(init_stmt_vec_info_htab): New prototype.
	(free_stmt_vec_info_htab): New prototype.
	(vinfo_for_stmt): Use hash table instead of statement info.
	(set_stmt_info): Remove.
	(set_vinfo_for_stmt): New inline.
	(is_pattern_stmt_p): Tuplify.
	(vect_is_simple_use): Tuplify prototype.
	(vect_is_simple_reduction): Same.
	(supportable_widening_operation): Same.
	(supportable_narrowing_operation): Same.
	(new_stmt_vec_info): Same.
	(free_stmt_vec_info): Same.
	Makefile.in (tree-vectorize.o): Add HASTAB_H dependency.

2008-06-22  Andrew Pinski  <pinskia@gmail.com>

	* gimple-pretty-print.c (dump_binary_rhs): Print out MIN_EXPR and
	MAX_EXPR specially.

2008-06-20  Doug Kwan  <dougkwan@google.com>

	* tree-loop-linear.c (File): Re-enable all previously disabled code.
	(gather_interchange_stats): Tuplify.
	(linear_transform_loops): Likewise.
	* gimple-dummy.c (get_type): Remove unused dummy.
	(ipa_add_method): Same.
	(ipa_callsite_callee): Same.
	(ipa_callsite_compute_count): Same.
	(ipa_callsite_compute_param): Same.
	(ipa_callsite_param): Same.
	(ipa_callsite_param_count): Same.
	(ipa_callsite_param_count_set): Same.
	(ipa_edges_create): Same.
	(ipa_edges_free): Same.
	(ipa_free): Same.
	(ipa_jf_get_info_type): Same.
	(ipa_method_compute_modify): Same.
	(ipa_method_compute_tree_map): Same.
	(ipa_method_formal_compute_count): Same.
	(ipa_method_formal_count): Same.
	(ipa_method_formal_count_set): Same.
	(ipa_method_get_tree): Same.
	(ipa_method_modify_print): Same.
	(ipa_method_tree_print): Same.
	(ipa_methodlist_init): Same.
	(ipa_methodlist_not_empty): Same.
	(ipa_node_create): Same.
	(ipa_nodes_create): Same.
	(ipa_nodes_free): Same.
	(ipa_remove_method): Same.
	(vec_set_verbosity_level): Same.
	* tree-ssa-loop.c (tree_linear_transform): Re-enable.

2008-06-19  Jan Hubicka  <jh@suse.cz>

	* gimple.c (gimple_alloc): Annotate with MEM_STAT_INFO
	(gimple_build_with_ops): Likewise.
	(gimple_build_assign): Likewise.
	(gimple_build_assign_with_ops): Likewise.
	* gimple.h (gimple_build_assign, gimple_build_assign_with_ops):
	Annotate with MEM_STAT_INFO.

2008-06-17  Jan Hubicka  <jh@suse.cz>

	* config/i386.c (ix86_gimplify_va_arg): Fix sharing issue.

2008-06-17  Jan Hubicka  <jh@suse.cz>

	* gimplify.c (gimplify_modify_expr): Unshare only returned value when
	want_value is set instead of copying operands all the time.

2008-06-17  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-loop-niter.c (get_val_for): Fix FIXME note.

2008-06-17  Steven Bosscher  <stevenb.gcc@gmail.com>

	* gimple-dummy.c (canonicalize_induction_variables): Remove dummy.
	(remove_empty_loops): Likewise.
	(tree_unroll_loops_completely): Likewise.
	* tree-ssa-ivcanon.c (tree_num_loop_insns): Replace bsi with gsi.
	(create_canonical_iv): Convert to tuples.
	(try_unroll_loop_completely): Likewise.
	(empty_loop_p): Likewise.
	(remove_empty_loop): Likewise.
	* tree-ssa-loop.c (tree_ssa_loop_ivcanon): Re-enable.
	(tree_ssa_empty_loop): Likewise.
	(tree_complete_unroll): Likewise.
	(tree_complete_unroll_inner): Likewise.

2008-06-16  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-ifcombine.c (File): Re-enable all previously diabled code.
	(bb_no_side_effects_p): Tuplify.
	(same_phi_args_p): Likewise.
	(get_name_for_bit_test): Likewise.
	(operand_precision): New.
	(integral_operand_p): New.
	(recognize_single_bit_test): Tuplify.
	(regcognize_bits_test): Tuplify.
	(ifcombine_ifandif): Likewise.
	(ifcombine_iforif): Likewise.
	(tree_ssa_ifcombine): Likewise.
	* passes.c: Re-enable pass_tree_ifcombine.

2008-06-16  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-loop-unswitch.c (File): Re-enable all previously disabled
	code.
	(tree_may_unswitch_on):  Tuplify.
	(simplify_using_entry_checks):  Likewise.
	(tree_unswitch_single_loop): Likewise.
	* gimple-dummy.c (tree_ssa_unswitch_loops): Remove dummy.
	* tree-ssa-loop.c (gate_tree_ssa_loop_unswitch):  Re-enable.

2008-06-16  Steven Bosscher  <steven@gcc.gnu.org>

	* tree-ssa-reassoc.c: Convrt to tuples.

2008-06-15  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-live.c (mark_all_vars_used_1): Mark as used
	the TREE_BLOCK of any _EXPR node.

2008-06-13  Doug Kwan  <dougkwan@google.com>

	* tree-mudflap.c (File): Re-enable previously disabled code.
	(mf_decl_cache_locals): Tuplify.
	(mf_build_check_statement_for): Likewise.
	(mf_xform_derefs_1): Re-enable.
	(mf_xform_derefs): Tuplify.
	(execute_mudflap_function_decls): Likewise.
	(mx_register_decls): Tuplify.  Add a new formal parameter for
	the location of newly generated statements.  Change function to
	return modified gimple sequence instead of of modifying in-place.
	(mx_xfn_xform_decls): Tuplify.
	(mf_xform_decls): Tuplify.
	* passes.c (init_optimization_passes): Re-enable mudflap passes.

2008-06-13  Jakub Jelinek  <jakub@redhat.com>

	Merge with mainline @136757.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-06-13  Doug Kwan  <dougkwan@google.com>

	* ipa-reference.c (scan_stmt_for_static_refs): Rename walk_subtrees
	parameter to handled_ops_p and correct bug of using walk_tree callback
	semantics.
	* ipa-pure-const.c (scan_function_stmt): Likewise.
	* tree-inline.c (mark_local_labes_stmt): Rename walk_subtrees
	parameter to handle_ops_p.
	(replace_locals_stmt): Likewise.

2008-06-10  Steven Bosscher  <steven@gcc.gnu.org>

	* passes.c (init_optimization_passes): Re-enable pass_uncprop.
	* tree-ssa-uncprop (associate_equivalences_with_edges): Convert
	to tuples.
	(uncprop_into_successor_phis): Likewise.

2008-06-09  Diego Novillo  <dnovillo@google.com>

	* ipa-cp.c (cgraph_gate_cp): Fix 'FIXME tuples' note.
	* cfg.c (compact_blocks): Likewise.
	* dominance.c (free_dominance_info): Likewise.
	* gimple-low.c (gimple_stmt_may_fallthru): Likewise
	* c-gimplify.c (add_block_to_enclosing): Likewise.
	* lambda-mat.c: Include tree-flow.h.
	* lambda-trans.c: Likewise.
	* Makefile.in (lambda-mat.o, lambda-trans.o): Add dependency
	on $(TREE_FLOW_H).
	* builtins.c (expand_builtin_setjmp_receiver): Remove #if 0 markers.
	(fold_call_stmt): Call gimple_call_va_arg_pack_p.
	* tree-gimple.h (gimple_bind_expr_stack): Declare.
	* cgraphunit.c (update_call_expr): Do not try to access operand 0
	of a FUNCTION_DECL.
	* tree-ssa-loop-ivopts.c (stmt_invariant_in_loop_p): New.
	* tree-flow.h (stmt_invariant_in_loop_p): Declare.
	* gimple-dummy.c (remove_iv): Remove.
	(gimple_stmt_may_fallthru):
	* ipa-type-escape.c (check_tree): Call DECL_P before testing
	DECL_INITIAL.
	(check_assign): Do not access TREE_OPERAND 0 on the RHS
	operand.
	* gimplify.c (gimple_bind_expr_stack): New.
	* gimple.h (struct gimple_statement_bind): Add more comments
	for field BLOCK.
	(gimple_cond_set_condition): New.
	* gimple.c (gimple_cond_set_condition_from_tree): Call it.
	(gimple_copy_no_def_use): Remove.  Update all users.
	(gimple_has_side_effects):
	(gimple_rhs_has_side_effects):
	* passes.c (init_optimization_passes): Enable
	pass_release_ssa_names, pass_ipa_type_escape, pass_ipa_pta,
	pass_ipa_struct_reorg, pass_record_bounds,
	pass_late_warn_uninitialized and pass_rename_ssa_copies.

	* lambda-code.c: Tuplify.
	* ipa-struct-reorg.c: Tuplify.
	* ipa-struct-reorg.h: Tuplify.

2008-06-09  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimplify_omp_for): Call gimple_omp_for_set_incr
	with the RHS of the GIMPLE_MODIFY_STMT instead of the
	GIMPLE_MODIFY_STMT itself.
	* gimple-pretty-print.c (dump_gimple_omp_for): Adjust for it.
	* tree-nested.c (walk_gimple_omp_for): Likewise.
	* omp-low.c (extract_omp_for_data, lower_omp_for): Likewise.

2008-06-09  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-forwprop.c (forward_propagate_into_cond): First argument is
	a GSI.
	(forward_propagate_addr_into_variable_array_index): Accept a GSI
	instead of a gimple statement.  Update accordingly.
	(forward_propagate_addr_expr_1): Same.
	(forward_propagate_addr_expr): Pass a GSI to
	forward_propagate_addr_expr_1.
	(simplify_not_neg_expr): Argument is a GSI.
	Adjust accordingly.
	(tree_ssa_forward_propagate_single_use_va): Pass GSI to
	simplify_not_neg_expr and forward_propagate_into_cond.

2008-06-09  Aldy Hernandez  <aldyh@redhat.com>

	* tree.h (IS_CONVERT_EXPR_P): New.
	(CONVERT_EXPR_P): Use IS_CONVERT_EXPR_P.
	* tree-ssa-forwprop.c (get_prop_dest_stmt): Convert to tuples.
	(get_prop_source_stmt): Same.
	(can_propagate_from): Same.
	(remove_prop_source_from_use): Same.
	(combine_cond_expr_cond): Same.
	(forward_propagate_into_cond): Same.
	(tidy_after_forward_propagate_addr): Same.
	(forward_propagate_addr_into_variable_array_index): Same.
	(forward_propagate_addr_expr_1): Same.
	(forward_propagate_addr_expr): Same.
	(forward_propagate_comparison): Same.
	(simplify_not_neg_expr): Same.
	(tree_ssa_forward_propagate_single_use_vars): Same.
	(simplify_gimple_switch): Rename from -simplify_switch_expr.
	(rhs_to_tree): New.
	(forward_propagate_into_gimple_cond): New.
	* Makefile.in (tree-ssa-forwprop.o): Depend on GIMPLE_H.
	* passes.c (init_optimization_passes): Enable pass_forwprop.

2008-06-09  Jakub Jelinek  <jakub@redhat.com>

	* tree.def (OMP_SECTIONS_SWITCH, OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE):
	Removed.
	* tree-gimple.c (is_gimple_stmt): Don't handle them.
	* gimplify.c (gimplify_expr): Likewise.
	* tree-pretty-print.c (dump_generic_node): Likewise.
	* tree-ssa-operands.c (get_expr_operands): Likewise.
	* expr.c (expand_expr_real_1): Likewise.
	* omp-low.c (expand_omp_atomic_pipeline): Adjust comment.

2008-06-09  Jakub Jelinek  <jakub@redhat.com>

	Merge with mainline @136433.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-06-08  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @136432.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-06-08  Diego Novillo  <dnovillo@google.com>

	* tree-call-cdce.c: Tuplify.

2008-06-06  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-06/msg00353.html

	* gimple.def: Add a third argument to all GIMPLE codes.
	Update all users.
	* calls.c (gimple_alloca_call_p): Fix comment.
	* system.h (CONST_CAST_GIMPLE): Define.
	* gimple.c (gimple_ops_offset_): Declare.  Fill in from
	third argument in gimple.def.
	(gimple_set_stored_syms, gimple_set_loaded_syms): Move
	from tree-ssa-operands.c
	(gimple_alloc): Add argument NUM_OPS.  Update all users.
	Compute size by adding enough space for NUM_OPS operands.
	(gimple_alloc_ops): Remove.  Update all users.
	(gimple_assign_set_rhs_from_tree): Change first argument
	to gimple_stmt_iterator *.  Update all users.
	Allocate a new statement, if there are more operands that
	can fit in the old one.
	(gimple_assign_set_rhs_with_ops): Likewise.
	(gimple_copy): Fix clearing of stores/loads sets in the
	copied statement.
	* gimple.h (struct gimple_statement_base): Remove fields
	UNUSED_1, UNUSED_2, UNUSED_3.
	Add fields MODIFIED, HAS_VOLATILE_OPS, REFERENCES_MEMORY_P,
	UID and NUM_OPS.
	Re-organize existing fields to eliminate holes on 64 bit
	hosts.
	Update all users.
	(struct gimple_statement_with_ops_base): Define.
	Factor out struct gimple_statement_with_ops.  Include fields GSBASE,
	ADDRESSES_TAKEN, DEF_OPS and USE_OPS.
	(struct gimple_statement_with_ops): Include struct
	gimple_statement_with_ops_base.
	Remove field NUM_OPS.
	(struct gimple_statement_with_memory_ops_base): Define.
	Factor out of struct gimple_statement_with_memory_ops.
	Include fields OPBASE, VDEF_OPS, VUSE_OPS, STORES and
	LOADS.
	Remove fields HAS_VOLATILE_OPS and REFERENCES_MEMORY_P.
	(struct gimple_statement_with_memory_ops): Include
	struct gimple_statement_with_memory_ops_base.
	(struct gimple_statement_phi): Change size_t fields to
	unsigned.  Update all users.
	(struct gimple_statement_asm): Include struct
	gimple_statement_with_memory_ops_base.
	Change fields NI and NO to unsigned char.
	Change field NC to short.
	Update all users.
	Add field OP.
	(struct gimple_statement_change_dynamic_type): Remove.
	Update all users.
	(union gimple_statement_d): Rename field WITH_OPS to GSOPS.
	Rename field WITH_MEM_OPS to GSMEM.
	Update all users.
	(gimple_addresses_taken): New.
	(gimple_addresses_taken_ptr): New.
	(gimple_set_addresses_taken): New.
	(gimple_num_ops): Move earlier.
	(gimple_ops): Use gimple_ops_offset_ to compute address
	of the operand vector.
	(gimple_op): Call gimple_ops.
	(gimple_op_ptr): Likewise.
	(gimple_set_op): Likewise.
	(gimple_switch_num_labels): Call gimple_num_ops.
	(gimple_switch_set_num_labels): Call gimple_set_num_ops.
	(gimple_switch_set_label): Call gimple_num_ops.
	(gimple_return_retval_ptr): Likewise.
	(gimple_return_retval): Likewise.
	(gimple_set_retval): Likewise.
	(gimple_cdt_new_type): Use operand 1.
	(gimple_cdt_new_type_ptr): Likewise.
	(gimple_cdt_set_new_type): Likewise.
	* tree-cfg.c (gimple_block_ends_with_call_p): Use
	CONST_CAST_BB.
	* tree-ssa-operands.c (gimple_set_stored_syms,
	gimple_set_loaded_syms): Declare.
	* value-prof.c (gimple_divmod_fixed_value_transform,
	gimple_mod_pow2_value_transform,
	gimple_mod_subtract_transform): Change argument to
	gimple_stmt_iterator *.  Update all users.
	* tree-ssa-ccp.c (fold_gimple_assign): Change parameter
	to gimple_stmt_iterator *.  Update all users

2008-06-05  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.c (gimplify_modify_expr_to_memcpy): Use gimplify_arg
	for gimplification of call arguments.
	(gimplify_modify_expr_to_memset): Likewise.

2008-06-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/36389
	* gimplify.c (gimplify_cond_expr): If one or both branches are
	GOTO_EXPRs jumping to LABEL_DECLs, don't create unnecessary
	extra LABEL_DECLs and jumps around.
	* tree-cfg.c (remove_useless_stmts_cond): Set may_branch also
	for GIMPLE_COND stmts.
	* tree-eh.c (replace_goto_queue_cond_clause): Set label to
	create_artificial_label () rather than LABEL_EXPR.

2008-05-30  Diego Novillo  <dnovillo@google.com>

	* calls.c (gimple_alloca_call_p): Fix detection of
	alloca() calls.

2008-05-30  Diego Novillo  <dnovillo@google.com>

	* toplev.c: Include gimple.h.
	(dump_memory_report): Call dump_gimple_statistics.
	* Makefile.in (toplev.o): Add dependency on GIMPLE_H.
	* gimple-low.c (pass_lower_cf): Restore disabled bits.
	* tree-dfa.c (pass_referenced_vars): Likewise.
	* cfgexpand.c (pass_expand): Likewise.
	* tree-outof-ssa.c (pass_del_ssa): Likewise.
	* gimple.c (gimple_alloc): Fix non-C99 declaration.
	* gimplify.c (gimplify_function_tree): Remove calls to
	dump_tree_statistics and dump_gimple_statistics.

2008-05-30  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (diagnose_omp_structured_block_errors): Temporarily
	switch cfun to DECL_STRUCT_FUNCTION (fndecl).

	* omp-low.c (scan_sharing_clauses): Call scan_omp on
	OMP_CLAUSE_REDUCTION_GIMPLE_{INIT,MERGE} instead of
	scan_omp_op on OMP_CLAUSE_REDUCTION_{INIT,MERGE}.
	(lower_rec_input_clauses): Clear
	OMP_CLAUSE_REDUCTION_GIMPLE_{INIT,MERGE} instead of
	OMP_CLAUSE_REDUCTION_{INIT,MERGE}.  Call lower_omp
	on OMP_CLAUSE_REDUCTION_GIMPLE_MERGE before gimple_seq_add_seq
	to replace all occurences of placeholder in the seq.
	* gimplify.c (gimplify_scan_omp_clauses): Clear
	OMP_CLAUSE_REDUCTION_{INIT,MERGE} after gimplifying it.

	* tree-nested.c (init_tmp_var_with_call, init_tmp_var, save_tmp_var):
	Only set location if not gsi_end_p.
	(walk_gimple_omp_for): Avoid adding an empty statement to seq.

	* tree-inline.c (remap_gimple_stmt): Remap body of
	GIMPLE_OMP_{MASTER,ORDERED,SECTION,SECTIONS,SINGLE}.

2008-05-28  Andrew Pinski  <pinskia@gmail.com>

	* gimple-pretty-print.c (dump_unary_rhs): Handle conversions correctly.
	Handle PAREN_EXPR, ABS_EXPR, and NEGATE_EXPR.

2008-05-29  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (lower_omp_1): Handle regimplification of GIMPLE_ASM.
	Fix GIMPLE_ASSIGN regimplification.
	* gimple-pretty-print.c (dump_gimple_omp_sections,
	dump_gimple_omp_block, dump_gimple_omp_critical): New functions.
	(dump_gimple_omp_parallel): Formatting.
	(dump_gimple_stmt): Handle remaining GIMPLE_OMP_* statements.

2008-05-29  Aldy Hernandez  <aldyh@redhat.com>

	* tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_* cases.

2008-05-29  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-pretty-print.c (dump_gimple_stmt): Add cases for
	GIMPLE_OMP_MASTER and GIMPLE_OMP_ORDERED.

2008-05-29  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (expand_omp_parallel): Parse an assignment from an
	ADDR_EXPR correctly.
	* gimple-pretty-print.c (dump_gimple_omp_parallel): Print braces when
	appropriate.

2008-05-29  Jakub Jelinek  <jakub@redhat.com>

	* omp-low.c (lower_omp_1): Fix regimplification of GIMPLE_COND and
	GIMPLE_CALL.

2008-05-28  Jakub Jelinek  <jakub@redhat.com>

	* gimple.c (gimple_regimplify_operands): Don't call gimple_num_ops
	twice.  Write regimplified operand to the correct operand slot.
	* gimplify.c (rhs_predicate_for): No longer static.
	* tree-gimple.h (rhs_predicate_for): New prototype.
	* omp-low.c (lower_omp_1): Don't call gimple_regimplify_operands,
	instead forcefully gimplify_expr each operand with the right
	predicate.

	* gimple.h (gimple_omp_atomic_store_val_ptr,
	gimple_omp_atomic_load_lhs_ptr, gimple_omp_atomic_load_rhs_ptr): New
	inlines.
	* gimple.c (walk_gimple_op): Handle GIMPLE_OMP_ATOMIC_LOAD and
	GIMPLE_OMP_ATOMIC_STORE.
	* omp-low.c (lower_omp_1): Handle GIMPLE_OMP_ATOMIC_LOAD.

	* gimple-pretty-print.c (dump_gimple_omp_for): Don't indent twice
	before gimple_omp_body, don't emit extra newline after it.
	(dump_gimple_omp_single): Likewise.

2008-05-27  Aldy Hernandez  <aldyh@redhat.com>

	* tree-nested.c (walk_omp_for): Rename to...
	(walk_gimple_omp_for): Enable and convert to tuples.
	(convert_nonlocal_reference_stmt): Enable call to walk_gimple_omp_for.
	(convert_local_reference_stmt): Same.
	* gimple.c (walk_gimple_op): Remove fixme note.

2008-05-27  Diego Novillo  <dnovillo@google.com>

	* tree-gimple.c (get_gimple_rhs_class): Handle
	POLYNOMIAL_CHREC.
	* tree-cfg.c (verify_types_in_gimple_assign): Do not
	check every operand against the LHS type for tcc_binary
	expressions.

2008-05-26  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @135951.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-05-22  Aldy Hernandez  <aldyh@redhat.com>

	* tree-cfg.c (make_edges): Change OMP_SECTION to GIMPLE_OMP_SECTIONS.
	Update comments.
	(verify_types_in_gimple_stmt): Update comments.
	(verify_stmt): Same.

2008-05-21 Andreas Tobler  <a.tobler@schweiz.org>

	* ../configure: Regenerate with the correct autoconf version: 2.59.

2008-05-21  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (lower_reduction_clauses): Generate OMP_ATOMIC_* directly.
	Concatenate atomic code correctly.

2008-05-20  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (WALK_SUBSTMTS): New.
	(check_combined_parallel): Walk sub-statements.
	(diagnose_sb_1): Same.
	(diagnose_sb_2): Same.
	Handle switch labels and return statements correctly.
	* testsuite/gcc.dg/gomp/block-7.c: Adjust for new error message.
	* testsuite/gcc.dg/gomp/block-2.c: Same.
	* testsuite/gcc.dg/gomp/block-4.c: Same.
	* testsuite/gcc.dg/gomp/block-6.c: Same.
	* testsuite/gcc.dg/gomp/block-8.c: Same.
	* testsuite/gcc.dg/gomp/block-1.c: Same.
	* testsuite/gcc.dg/gomp/block-3.c: Same.
	* testsuite/gcc.dg/gomp/block-5.c: Same.

2008-05-20  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (lower_omp_single): Append to bind variables.
	(lower_omp_master): Same.
	(lower_omp_ordered): Same.
	(lower_omp_critical): Same.
	* gimplify.c (gimplify_modify_expr_to_memcpy): Make sure we are
	fully gimplified.
	(gimplify_omp_for): Same.
	* gimple.h (gimple_bind_set_vars): New.

2008-05-16  Andreas Tobler  <a.tobler@schweiz.org>

	* config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust arguments.
	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
	* config/m32c/m32c-protos.h (m32c_gimplify_va_arg_expr): Likewise.
	* config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
	* config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr): Likewise.
	* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.

	* config/sparc/sparc.c (sparc_gimplify_va_arg): Adjust arguments.

2008-05-16  Diego Novillo  <dnovillo@google.com>

	* tree-into-ssa.c (rewrite_uses_p): Fix return type.
	* tree-vectorizer.h (nested_in_vect_loop_p): Add return value.
	* tree-ssa-pre.c (execute_pre): Add return value.

2008-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* config/s390/s390.c (s390_gimplify_va_arg): Adjust for tuples.

2008-05-15  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (STRICT_WARN): Revert to mainline behaviour.
	(builtins.o-warn, expr.o-warn, dse.o-warn,
	ebitmap.o-warn, lower-subreg.o-warn, tree-chrec.o-warn,
	tree-ssa-structalias.o-warn, varasm.o-warn): Remove.
	* config/arm/arm.c (arm_return_in_memory): Fix return type.
	* config/arm/arm-protos.h (arm_return_in_memory): Likewise.

2008-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* gimplify.c (gimplify_omp_for): Handle a MODIFY_EXPR in
	gimple_omp_for_incr.
	* cfgexpand.c (gimple_to_tree): Do not die on compile errors.

2008-05-15  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (check_omp_nesting_restrictions): Fetch clauses from for.
	(expand_omp_atomic): Parse GIMPLE_OMP_ATOMIC correctly.
	(lower_omp_single_simple): Create GIMPLE_COND with both tlabel and
	flabel.
	(lower_omp_for): Make sure we have a body before look inside.
	* gimple-low.c (lower_stmt): Add case for GIMPLE_OMP_SECTIONS_SWITCH.
	* gimple-pretty-print.c (dump_gimple_omp_single): New.
	(dump_gimple_stmt): Add case for GIMPLE_OMP_SINGLE.
	* gimplify.c (gimplify_omp_workshare): Remove fixme.  Enable code.
	* gimple.c (gss_for_code): Add case for GIMPLE_OMP_{RETURN,
	SECTIONS_SWITCH}.
	(gimple_regimplify_operands):  Do not regimplify GIMPLE_ASM
	operands.  Do not look inside empty operands.
	* gimple.h (is_gimple_omp): Fix typo for GIMPLE_OMP_ATOMIC*.
	* tree-cfg.c (make_edges): Rename OMP_SECTION to GIMPLE_OMP_SECTION.

2008-05-14  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (optimize_omp_library_calls): Make sure statement is
	a GIMPLE_CALL before we look inside of it.
	* tree-cfg.c (move_stmt_op): Exit gracefully.

2008-05-13  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (scan_omp_op): Remove walk_subtrees.  Call walk_tree.
	(scan_omp_for): Scan OMP body.
	(scan_omp_1_stmt): Set handled_ops_p.
	(expand_omp_parallel): Parse ADDR_EXPR correctly.
	(diagnose_sb_1): Rename walk_subtrees to handled_ops_p and set
	appropriately.
	(diagnose_sb_2): Same.
	* gimple-pretty-print.c (dump_gimple_omp_for): Print braces around
	OMP body.
	* tree-inline.c (estimate_num_insns): GIMPLE_OMP_CONTINUE does not
	have a body.
	* tree-cfg.c (move_stmt_op): Parse move_stmt_d out of data correctly.
	(move_stmt_r): Rename walk_subtrees to handled_ops_p and set
	appropriately.

2008-05-12  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @135126.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-05-11 Doug Kwan  <dougkwan@google.com>

	* gimplify.c (gimple_pop_condition): Clear
	conditional_cleanups field after the associated gimple sequence has
	been freed implicitly.
	(gimplify_cleanup_point_expr): Clear conditional_cleanups field
	of gimplfiy_ctxp after resetting the conditions field.
	* gimple.h (gimple_call_return_type): Handle REFERENCE_TYPE like
	POINTER_TYPE. 

2008-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>

	* config/sh/sh.c (sh_gimplify_va_arg_expr): Change pre_p and
	post_p types to gimple_seq *.

2008-05-09  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (maybe_catch_exception): Return body when no exceptions.
	(gate_lower_omp): Enable pass.
	* gimple-low.c (lower_stmt): Add GIMPLE_OMP_ATOMIC_* cases.

2008-05-08  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (extract_omp_for_data): Update comment.
	(get_ws_args_for): Same.
	(lower_send_shared_vars): Same.
	(expand_omp_parallel): Same.
	(expand_omp_for_static_nochunk): Same.
	(expand_omp_for_static_chunk): Same.
	(expand_omp_sections): Same.
	(expand_omp_atomic_fetch_op): Same.
	(expand_omp_atomic_pipeline): Same.
	(build_omp_regions_1): Same.
	(lower_omp_for): Same.
	(expand_omp_atomic_mutex): Change OMP_ATOMIC_STORE to
	GIMPLE_OMP_ATOMIC_STORE.
	* gimple-pretty-print.c (dump_gimple_omp_parallel): Print child fn
	and data_arg.
	* tree-cfg.c (make_edges): Enable commented out code and convert
	to tuples.
	(replace_by_duplicate_decl): Same.
	(replace_ssa_name): Same.
	(move_stmt_r): Same.
	(move_stmt_op): New.
	(mark_virtual_ops_in_bb): Enable and convert to tuples.
	(makr_virtual_ops_in_region): Same.
	(move_block_to_fn): Convert to tuples.
	(find_outermost_region_in_block): Enable and convert to tuples.
	(move_sese_region_to_fn): Same.

2008-05-05  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (expand_omp_parallel): Remove fixmes.
	(expand_omp_for_static_chunk): Enable and tuplify code.
	(expand_omp_sections): Remove fixmes.  Tuplify.
	(lower_omp_sections): Same.
	(diagnose_sb_0): Remove fixme.
	* tree-ssa.c (redirect_edge_var_map_dup): Fix typo in comment.
	* gimple.c (gimple_size): Add case for GIMPLE_OMP_SECTIONS_SWITCH.
	(gimple_build_omp_sections): New.
	* gimple.h (gimple_build_omp_sections_switch): New prototype.

2008-05-03  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (diagnose_sb_0): Tuplify and enable.
	(diagnose_sb_1): Same.
	(diagnose_sb_2): Same.
	(diagnose_omp_structured_block_errors): Tuplify.
	* gimple-dummy.c (DUMMY_FN): Remove
	diagnose_omp_structured_block_errors.
	* c-decl.c (c_gimple_diagnostics_recursively): Remove fixme
	and enable call to diagnose_omp_structured_block_errors.
	* Makefile.in (GTFILES): Add omp-low.c again.

2008-05-02  Rafael Espíndola  <espindola@google.com>

	* tree-gimple.c (is_gimple_condexpr): Do not allow
	trapping comparisons.
	* tree-eh.c (tree_could_trap_p): Fix handling of floating
	point comparisons.

2008-05-02  Doug Kwan  <dougkwan@google.com>

	* value-prof.c (gimple_divmod_fixed_value): Remove formal parameters
	OPERATION, OP1 and OP2 and derive their values from parameter STMT
	instead.  Update prototype and caller.
	(gimple_mod_pow2): Remove formal parameters OPERATION, OP1 and OP2
	and derive their values from parameter STMT instead.  Update prototype
	and caller.
	(gimple_mod_pow2_value_transform): Remove temporares OP, OP1 and OP2.
	Use a new tempory LHS_TYPE to store assignment LHS type.
	(gimple_mode_subtract): Remove formal parameters OPERATION, OP1 and OP2
	and derive their values from parameter STMT instead.  Update prototype
	and caller.  Fix a bug in a call to gimple_build_assign_with_ops.
	(gimple_mod_subtract_transform): Remove temporares OP, OP1 and OP2.
	Use a new tempory LHS_TYPE to store assignment LHS type.
	(gimple_ic, gimple_indirect_call_to_profile): Fix bug in tree-code
	tests.
	* tree-profile.c (File): Re-enable all previously disabled code.
	(tree_gen_edge_profiler): Tuplify.
	(prepare_instrumented_value): Ditto.
	(tree_gen_interval_profiler): Ditto.
	(tree_gen_pow2_profiler): Ditto.
	(tree_gen_one_value_profiler): Ditto.
	(tree_gen_ic_profiler): Ditto.
	(tree_gen_ic_func_profiler): Ditto.
	(tree_gen_const_delta_profiler): Re-format formal parameters for
	proper alignement.
	(tree_gen_average_profiler): Tuplify.
	(tree_gen_ior_profiler): Ditto.
	(do_tree_profiling): Re-enable previously disabled code.  Remove
	FIXME.
	(tree_profiling): Ditto.
	* gimple.c (gimple_set_bb):  Remove assertion.
	* tree-cfg.c (change_bb_for_stmt): Remove.  Redirect callers to
	gimple_set_bb.
	(gimple_merge_blocks): Call gimple_set_bb instead of
	change_bb_for_stmt.
	(gimple_split_block): Ditto.
	(verify_stmts): Add code to check that label_to_block_map and labels
	are consistent.

2008-04-22  Rafael Espíndola <espindola@google.com>

	Merge with mainline @134843.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-05-01  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00053.html

	* tree-vrp.c (vrp_visit_phi_node): Cast variable I to int
	for printing.
	* cgraph.c (cgraph_release_function_body): Only call
	gimple_set_body if NODE->DECL has a struct function.
	* tree.c (make_node_stat): Do not call gimple_set_body.
	* cp/Make-lang.in (cp/semantics.o): Add dependency on
	$(GIMPLE_H).
	* cp/semantics.c: Include gimple.h
	(expand_or_defer_fn): Assert that FN has a gimple body.
	* function.h (struct function): Add field GIMPLE_BODY.
	* gimple.c (gimple_bodies_vec): Remove.
	(gimple_bodies_map): Remove.
	(gimple_set_body): Re-write to use GIMPLE_BODY in FN's
	function object.
	(gimple_body): Likewise.

2008-05-01  Oleg Ryjkov  <olegr@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00053.html

	* tree-eh.c (record_in_goto_queue, record_in_goto_queue_label):
	New functions.
	(maybe_record_in_goto_queue): Refactored and added support for
	recording labels embedded in GIMPLE_CONDs.
	(lower_catch, lower_cleanup): Fix 3 typos that were introduced
	during the conversion to tuples.
	(lower_eh_constructs_2): Call maybe_record_in_goto_queue for
	GIMPLE_CONDs.

2008-05-01  Rafael Espíndola <espindola@google.com>

	* gimple-pretty-print.c (dump_gimple_try): Print like trunk does.
	(dump_gimple_catch): Print like trunk does.

2008-05-01  Rafael Espíndola <espindola@google.com>

	* passes.c (gimple_verify_flow_info): Enable remaining
	pass_rename_ssa_copies passes.

2008-05-01  Rafael Espíndola <espindola@google.com>

	* tree-cfg.c (gimple_verify_flow_info): Handle switches with only the
	default label.

2008-04-30  Doug Kwan  <dougkwan@google.com>

	* cfgexpand.c (gimple_to_tree): Change code to annotate EH region
	numbers only if numbers are greater than zero.  Also propagate EH
	region number to CALL_EXPRs nested in assignments.

2008-04-29  Doug Kwan  <dougkwan@google.com>

	* tree-eh.c (lower_try_finally_dup_block): Call
	copy_gimple_seq_and_replace_locals instead of gimple_seq_copy.
	(optimize_double_finally): Add a note about replacing unsave_expr_now
	with copy_gimple_seq_and_replace_locals.
	* tree-inline.c (mark_local_labels_stmt, replace_locals_op,
	replace_locals_stmt, copy_gimple_seq_and_replace_locals): New.
	* tree-inline.h (copy_gimple_seq_and_replace_locals): New prototype.

2008-04-29  Rafael Espíndola <espindola@google.com>

	* gimple-pretty-print.c (dump_gimple_return): Add missing space.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Fix type
	of variable.

2008-04-29  Rafael Espíndola <espindola@google.com>

	* gimple-pretty-print.c (pp_cfg_jump): add missing ";".

2008-04-29  Rafael Espíndola <espindola@google.com>

	* gimple-pretty-print.c (dump_gimple_assign): print ";" at the end.
	(dump_gimple_return):print ";" at the end.
	(dump_gimple_call): print ";" at the end.
	(dump_gimple_cond): use op_symbol_code instead of tree_code_name.
	(pp_cfg_jump): print ";" at the end.

2008-04-29  Rafael Espíndola <espindola@google.com>

	* ipa-cp.c (ipcp_driver): Disable.
	* matrix-reorg.c (matrix_reorg): Comment body.
	(gate_matrix_reorg): Disable.
	* passes.c (init_optimization_passes): Enable first pass_merge_phi,
	pass_ipa_cp and pass_ipa_matrix_reorg.

2008-04-29  Doug Kwan  <dougkwan@google.com>

	* tree-eh.c (lower_catch): Fix bug of accessing sub-statements
	using gimple_catch_handler.  Fix bug of mixing up GIMPLE_GOTO and
	GIMPLE_LABEL in statement building.
	(lower_cleanup): Fix bug of mixing up gimple_try_clean and
	gimple_try_eval.
	(lower_cleanup): Use gimple codes instead of tree codes in switch
	statement.
	(tree-cfg.c): Add code to generate EH edges of GIMPLE_ASSIGN.

2008-04-28  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg02051.html

	* tree-ssa-phiprop.c (phiprop_insert_phi): Remove
	OLD_ARG_CODE.  Use TREE_CODE (ARG) instead.
	Assert that NEW_VAR is a GIMPLE register.
	(propagate_with_phi): Fix test of is_gimple_reg_type for
	ARG.
	Do not set subcode of USE_STMT to NOP_EXPR.

2008-04-28  Doug Kwan  <dougkwan@google.com>

	* tree-inline.c (remap_gimple_op_r): Remove code to handle RESX_EXPR
	region number remapping.
	(remap_gimple_stmt): Add code to handle GIMPLE_RESX region number
	remapping.

2008-04-28  Rafael Espíndola <espindola@google.com>

	* cfgexpand.c (gimple_to_tree): Add support for switch stmts without
	a default label.
	* fold-const.c (tree_call_nonnegative_warnv_p): Remove the code
	argument.
	(tree_invalid_nonnegative_warnv_p): Update call to
	tree_call_nonnegative_warnv_p.
	* gimple.h (gimple_location_ptr): New.
	* tree-flow.h (simplify_stmt_using_ranges): Change signature.
	* tree-ssa-propagate.c (substitute_and_fold): Call
	simplify_stmt_using_ranges.
	* tree-vrp.c (struct assert_locus_d): Tuplify.
	(switch_update): Tuplify.
	(stmt_overflow_infinity): New.
	(gimple_assign_nonnegative_warnv_p): New.
	(gimple_call_nonnegative_warnv_p): New.
	(gimple_stmt_nonnegative_warnv_p): New.
	(gimple_assign_nonzero_warnv_p): New.
	(gimple_stmt_nonzero_warnv_p): New.
	(vrp_stmt_computes_nonzero): Tuplify.
	(extract_range_basic): Tuplify.
	(extract_range_from_expr): Tuplify. Rename to
	extract_range_from_assignment.
	(adjust_range_with_scev): Tuplify.
	(vrp_var_may_overflow): Tuplify.
	(build_assert_expr_for): Tuplify.
	(fp_predicate): Tuplify.
	(infer_value_range): Tuplify.
	(dump_asserts_for): Tuplify.
	(register_new_assert_for): Tuplify.
	(register_edge_assert_for_2): Tuplify.
	(register_edge_assert_for_1): Tuplify.
	(register_edge_assert_for): Tuplify.
	(find_conditional_asserts): Tuplify.
	(find_switch_asserts): Tuplify.
	(find_assert_locations): Tuplify.
	(process_assert_insertions_for): Tuplify.
	(process_assert_insertions): Tuplify.
	(check_array_ref): Tuplify.
	(search_for_addr_array): Tuplify.
	(check_array_bounds): Tuplify.
	(check_all_array_refs): Tuplify.
	(remove_range_assertions): Tuplify.
	(stmt_interesting_for_vrp): Tuplify.
	(vrp_initialize): Tuplify.
	(vrp_visit_assignment): Tuplify. Rename to vrp_visit_assignment_or_call.
	(vrp_visit_cond_stmt): Tuplify.
	(find_case_label_index): Tuplify.
	(find_case_label_range): Tuplify.
	(vrp_visit_switch_stmt): Tuplify.
	(vrp_visit_stmt): Tuplify.
	(vrp_visit_phi_node): Tuplify.
	(simplify_div_or_mod_using_ranges): Tuplify.
	(simplify_abs_using_ranges): Tuplify.
	(simplify_cond_using_ranges): Tuplify.
	(simplify_switch_using_ranges): Tuplify.
	(simplify_stmt_using_ranges): Tuplify.
	(simplify_stmt_for_jump_threading): Tuplify.
	(identify_jump_threads): Tuplify.
	(execute_vrp): Tuplify.
	(gate_vrp): Enable.
	* tree.h (tree_call_nonnegative_warnv_p): Remove the code argument.

2008-04-28  Doug Kwan  <dougkwan@google.com>

	* cp/cp-gimplify.c (finish_bc_block):  Tuplify.
	(build_bc_goto):  Renamed to get_bc_label.  Return a label
	only.  Uupdate  callers.
	(get_bc_label): New
	(gimplify_cp_loop): Tuplify.  Also check COND for error_mark_node
	before gimplifying it.
	(gimplify_for_stmt): Tuplify.
	(gimplify_while_stmt): Tuplify.
	(gimplify_for_stmt): Tuplify.
	(gimplify_do_stmt): Tuplify.
	(gimplify_switch_stmt): Tuplify.
	(cp_gimplify_omp_switch_stmt): Add temporary code to pop block
	label stack.
	(cp_gimplify_expr): Pass pre_p to gimplify_while_stmt,
	gimplify_do_stmt and gimplify_switch_stmt.  Tuplify
	gimplification of CONTINUE_STMT and BREAK_STMT.

2008-04-26  Rafael Espíndola <espindola@google.com>

	* gimple.c (gimple_build_assign_with_ops): Don't set SSA_NAME_DEF_STMT.
	* gimple.h (gimple_assign_set_lhs): Set SSA_NAME_DEF_STMT.
	(gimple_call_set_lhs): Set SSA_NAME_DEF_STMT.
	* omp-low.c (expand_parallel_call): Don't set SSA_NAME_DEF_STMT if not
	needed.
	(expand_omp_for_generic): Same.
	(expand_omp_for_static_nochunk): Same.
	(expand_omp_for_static_chunk): Same.
	(expand_omp_sections): Same.
	(expand_omp_atomic_mutex): Same.
	* predict.c (strip_builtin_expect): Same.
	* tree-cfg.c (gimple_merge_blocks): Same.
	* tree-inline.c (remap_ssa_name): Same.
	(setup_one_parameter): Same.
	* tree-predcom.c (replace_ref_with): Same.
	(replace_ref_with): Same.
	(initialize_root_vars_lm): Same.
	(reassociate_to_the_same_stmt): Same.
	* tree-scalar-evolution.c (scev_const_prop): Same.
	* tree-ssa-loop-im.c (rewrite_reciprocal): Same.
	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Same.
	* tree-ssa-loop-manip.c (create_iv): Same.
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Same.
	* tree-ssa-phiopt.c (minmax_replacement): Same.
	(abs_replacement): Same.

2008-04-25  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01965.html

	* gimplify.c (annotate_all_with_location_after): New.
	(gimplify_expr): Call it.

2008-04-25  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @134692.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-25  Doug Kwan  <dougkwan@google.com>

	* tree-inline.c (expand_call_inline):  Save old call statement
	and use it to look up correct EH region.

2008-04-24  Doug Kwan  <dougkwan@google.com>

	* Makefile.in (STRICT_WARN): Remove -Wno-format and
	-Wno-missing-format-attribute.
	* gimplify.c (gimple_pop_condition): Remove redundant and incorrect
	gimple_seq_free.
	(gimplify_init_ctor_eval_range): Add a fall-through label for
	GIMPLE_COND statement.

2008-04-25  Rafael Espíndola <espindola@google.com>

	* tree-ssa-dom.c (avail_expr_eq): Return false if the hashes don't
	match.

2008-04-24  Oleg Ryjkov  <olegr@google.com>

	* gimplify.c (gimplify_expr): Fix the assertion that verifies validity
	of parameters.
	* tree-inline.c (estimate_num_insns): Handle
	GIMPLE_CHANGE_DYNAMIC_TYPE.
	* tree-cfg.c (verify_types_in_gimple_stmt): Likewise.

2008-04-24  Rafael Espíndola <espindola@google.com>

	* tree-ssa-dom.c (initialize_hash_element): Fix the type of the code
	variable.

2008-04-23  Rafael Espíndola <espindola@google.com>

	* omp-low.c (gate_lower_omp): Return 0.
	* passes.c (init_optimization_passes): Enable all passes whose
	corresponding dump options are used in the testsuite.
	* tree-loop-distribution.c (tree_loop_distribution): Comment body.
	(gate_tree_loop_distribution): Return 0.
	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
	Comment body.
	(gate_forwprop): Return 0.
	* tree-ssa-loop.c (gate_tree_ssa_loop_unswitch): Return 0.
	(gate_tree_vectorize): Return 0.
	(gate_tree_ssa_loop_ivcanon): Return 0.
	(tree_ssa_empty_loop): Return 0.
	(gate_tree_complete_unroll): Return 0.
	* tree-ssa-pre.c (gate_fre): Return 0.
	* tree-ssa-reassoc.c (execute_reassoc): Comment body.
	(gate_tree_ssa_reassoc): Return 0.
	* tree-stdarg.c (gate_optimize_stdarg): Return 0.
	(execute_optimize_stdarg): Comment body.
	* tree-vrp.c (execute_vrp): Comment body.
	(gate_vrp): Return 0.

2008-04-22  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (lower_omp_parallel): Add new argument to
	gimple_omp_parallel_set_combined_p.
	(lower_omp_1): Remove debugging code.
	* gimple.h (gimple_omp_parallel_combined_p): Add new argument.

2008-04-22  Rafael Espíndola <espindola@google.com>

	Merge with mainline @134552.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-21  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-phiopt.c (FILE): Uncomment all previously disabled code.
	(tree_ssa_phiopt): Remove FIXME and re-enable code.
	(tree_ssa_cs_elim): Remove FIXME and re-enable code.
	(tree_ssa_phiopt_worker): Tuplify.
	(replace_phi_edge_with_variable): Tuplify.
	(conditional_replacement): Tuplify and simplify optimization logic.
	Construct a boolean tree and let fold and force_gimple_operand_gsi
	do optimization and code genaration.
	(value_replacement): Tuplify.
	(minmax_replacement): Tuplify.
	(abs_replacement): Tuplify.
	(nt_init_block): Tuplify.
	(cond_store_replacement): Tuplify.
	* gimple.h (gimple_seq_singleton_p): Fix empty sequence bug.
	* passes.c (init_optimization_passes): Re-enable pass_cselim
	and pass_phiopt.

2008-04-21  Diego Novillo  <dnovillo@google.com>

	* tree.c (make_node_stat): Clear gimple_body() for newly
	created FUNCTION_DECLs.
	* tree-gimple.c (rhs_predicate_for): Move to gimplify.c.
	* tree-gimple.h (rhs_predicate_for): Remove declaration.
	* gimple-pretty-print.c (dump_gimple_assign): Add support
	for showing volatile operands.
	(dump_gimple_call): Likewise.
	Add support for showing __builtin_va_arg_pack, static
	chains, return slot optimized and tail calls.
	(dump_gimple_phi): Remove code to print memory symbols.
	* gimplify.c (is_gimple_formal_tmp_or_call_rhs): New.
	(is_gimple_mem_or_call_rhs): New.
	(rhs_predicate_for): Call them.
	(internal_get_tmp_var): Use is_gimple_formal_tmp_or_call_rhs as
	the gimplification predicate.
	Use the last statement in *PRE_P to get the temporary to
	be updated when in SSA form.
	(gimplify_bind_expr): Clear out *EXPR_P before returning.
	(gimplify_call_expr): Do not build a GIMPLE_CALL if
	WANT_VALUE is true.
	Call gimple_build_call_from_tree if WANT_VALUE is false.
	Remove local variable ARGS.
	(gimplify_modify_expr): If after gimplification *FROM_P
	is a CALL_EXPR, create a GIMPLE_CALL instead of a
	GIMPLE_ASSIGN.
	Document why the gimplification of the RHS should accept
	CALL_EXPRs.
	(gimplify_expr): Document where the generated statement
	is stored.
	Accept is_gimple_formal_tmp_or_call_rhs and
	is_gimple_mem_or_call_rhs as gimplification predicates.
	When gimplifying statements, clear out *EXPR_P before
	returning.
	When generating an rvalue, call is_gimple_formal_tmp_or_call_rhs
	to test *EXPR_P.
	* tree-dfa.c (mark_symbols_for_renaming): Remove
	ATTRIBUTE_UNUSED.
	* tree-flow.h (stmt_references_memory_p): Remove.
	* gimple.c (gimple_build_call_from_tree): New.
	* gimple.h (struct gimple_statement_with_memory_ops): Add
	bitfield references_memory_p.
	(gimple_build_call_from_tree): Declare.
	(gimple_references_memory_p): Rename from
	stmt_references_memory_p.  Move here.  Update all users.
	(gimple_set_references_memory): New.
	(gimple_assign_set_rhs1): When the assignment has more
	than one operand on the RHS, assert that the operands are
	gimple values.
	(gimple_assign_set_rhs2): Assert that the operand is a
	gimple value.
	(gimple_call_set_return_slot_opt): Fix mask clearing.
	(gimple_call_set_from_thunk): Likewise.
	(gimple_call_set_va_arg_pack): Likewise.
	* tree-cfg.c (dump_function_to_file): Do not indent when
	doing a GIMPLE dump.
	* tree-ssa-operands.c (add_virtual_operand): Call
	gimple_set_references_memory.
	(get_addr_dereference_operands): Likewise.
	(get_tmr_operands): Likewise.
	(maybe_add_call_clobbered_vops): Likewise.
	(get_asm_expr_operands): Likewise.
	(parse_ssa_operands): Likewise.
	(build_ssa_operands): Likewise.
	(stmt_references_memory_p): Remove.

2008-04-21  Rafael Espíndola <espindola@google.com>

	Cherry pick http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01213.html

	* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
	to zero, thus disable creation of SFTs.
	* gcc.dg/tree-ssa/salias-1.c: Remove.
	* gcc.dg/tree-ssa/pr26421.c: Adjust pattern.
	* gcc.dg/tree-ssa/alias-15.c: Likewise.
	* gcc.dg/tree-ssa/ssa-lim-3.c: Run at -O2.

2008-04-20  Zdenek Dvorak  <ook@ucw.cz>

	* passes.c (init_optimization_passes): Enable pass_dce_loop.

2008-04-20  Zdenek Dvorak  <ook@ucw.cz>

	* tree-data-ref.c (split_constant_offset_1): Use POINTER_PLUS_EXPR
	for pointer addition.
	(split_constant_offset): Set VAR to EXP before conversions are
	stripped, when no offset is removed.  Handle chrec_dont_know.
	* tree-predcom.c: Tuplified.
	* passes.c (init_optimization_passes): Enable pass_predcom.

2008-04-18  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (lower_rec_input_clauses): Remove fixme and
	ATTRIBUTE_UNUSED.
	(lower_lastprivate_clauses): Same.
	(lower_reduction_clauses): Same.
	(lower_copyprivate_clauses): Same.
	(lower_send_clauses): Same.
	(lower_send_shared_vars): Same.
	(maybe_catch_exception): Convert to tuples.
	(lower_omp_sections): Same.
	(lower_omp_single_simple): Same.
	(lower_omp_single_copy): Same.
	(lower_omp_single): Same.
	(lower_omp_master): Same.
	(lower_omp_ordered): Same.
	(lower_omp_critical): Same.
	(lower_omp_for_lastprivate): Same.
	(lower_omp_for): Same.
	(check_combined_parallel): Same.
	(lower_omp_parallel): Same.
	(lower_omp_1): Same.
	(execute_lower_omp): Enable.
	* gimple-dummy.c: Remove dummy functions for lower_omp_*.
	* gimple-low.c (lower_omp_directive): Convert to tuples.
	(lower_stmt): Remove fixme.
	* gimple.h (gimple_seq_alloc_with_stmt): New.
	(gimple_omp_section_set_last): New.
	(gimple_omp_parallel_set_combined_p): New.
	(gimple_bind_add_stmt): New.
	(gimple_bind_add_seq): New.
	* tree-cfg.c (verify_node_sharing): Fix typo in comment.

2008-04-17  Oleg Ryjkov  <olegr@google.com>

	* Reverting forwprop patch.

	2008-04-16  Oleg Ryjkov  <olegr@google.com>

		* tree-ssa-forwprop.c (get_prop_dest_stmtm get_prop_source_stmt,
		can_propagate_from, remove_prop_source_from_use,
		tidy_after_forward_propagate_addr,
		forward_propagate_addr_into_variable_array_index,
		forward_propagate_addr_expr_1, forward_propagate_addr_expr,
		forward_propagate_comparison, simplify_not_neg_expr,
		simplify_switch_expr,
		tree_ssa_forward_propagate_single_use_variables): Tuplified.
		(forward_propagate_into_cond): Tuplified and moved some functionality
		into forward_propagate_into_cond_gimple.
		(rhs_to_tree, forward_propagate_into_cond_gimple): New functions.
		* passes.c (init_optimization_passes): Enabled pass_forwprop.
		* tree-cfg.c (find_taken_edge_cond_expr): Fixed comment.

2008-04-16  Oleg Ryjkov  <olegr@google.com>

	* tree-ssa-forwprop.c (get_prop_dest_stmtm get_prop_source_stmt,
	can_propagate_from, remove_prop_source_from_use,
	tidy_after_forward_propagate_addr,
	forward_propagate_addr_into_variable_array_index,
	forward_propagate_addr_expr_1, forward_propagate_addr_expr,
	forward_propagate_comparison, simplify_not_neg_expr,
	simplify_switch_expr,
	tree_ssa_forward_propagate_single_use_variables): Tuplified.
	(forward_propagate_into_cond): Tuplified and moved some functionality
	into forward_propagate_into_cond_gimple.
	(rhs_to_tree, forward_propagate_into_cond_gimple): New functions.
	* passes.c (init_optimization_passes): Enabled pass_forwprop.
	* tree-cfg.c (find_taken_edge_cond_expr): Fixed comment.

2008-04-16  Doug Kwan  <dougkwan@google.com>

	* Makefile.in (STRICT_WARN): Disable -Wmissing-format-attribute
	and -Wformat temporarily for bootstrapping.
	* lambda-code.c (invariant_in_loop_and_outer_loops): Comment out
	to avoid defined-and-not-used warning.
	* tree-cfg.c (gather_blocks_in_sese_region): Comment out to avoid
	defined-and-not-used warning.
 
2008-04-16  Doug Kwan  <dougkwan@google.com>

	* Makefile.in (GTFILES): Add back ipa-reference.h and ipa-reference.c.
	* gimple-dummy.c (memory_identifier_string): Remove.
	* ipa-cp.c (constant_val_insert): Tuplify.
	* ipa-prop.c (File): Uncomment all previously disabled code.
	(ipa_method_modify_stmt): Tuplify.
	(ipa_method_compute_modify): Tuplify.
	(ipa_callsite_tree): Renamed to ipa_callsite_stmt.  Update callers.
	(ipa_callsite_stmt): New.
	(ipa_callsite_compute_count): Tuplify.
	(ipa_callsite_compute_param): Tuplify.
	* ipa-reference.c (File): Uncomment all previously disabled code.
	(get_asm_stmt_operands): Tuplify.
	(check_call): Tuplify.  Also add code to handle assignment of
	returned value.
	(scan_for_static_refs): Remove.  Tuplify body and split into two
	new functions scan_stmt_for_static_refs and scan_op_for_static_refs.
	Update callers.
	(scan_stmt_for_static_refs): New.  Split from scan_for_static_refs.
	(scan_op_for_static_refs): New.  Split from scan_for_static_refs.
	(analyze_variable): Update walk_tree call.
	(analyze_function): Tuplify.
	* passes.c (init_optimization_passes): Re-enable pass_ipa_reference.
	* tree-flow.h (struct function_ann_d): Uncomment field
	ipa_reference_vars_info.

2008-04-15  Doug Kwan  <dougkwan@google.com>

	* tree-eh.c (operation_could_trap_p): Fix filtering logic.

2008-04-15  Bill Maddox  <maddox@google.com>

	* tree-ssa-dom.c: (degenerate_phi_result, remove_stmt_or_phi,
	get_rhs_or_phi_arg, get_lhs_or_phi_result, propagate_rhs_into_lhs,
	eliminate_const_or_copy, eliminate_degenerate_phis_1,
	eliminate_degenerate_phis): Convert to tuples.
	* passes.c (init_optimization_passes): Enable pass_phi_only_cprop.
	
2008-04-15  Oleg Ryjkov  <olegr@google.com>

	* tree-ssa-dom.c (record_const_or_copy): Moving a variable declaration to
	the top of a block.

2008-04-15  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-sink.c (File): Uncomment all previously disabled code.
	(find_bb_for_arg): Tuplify.
	(all_immediate_uses_sample_place): Tuplify.
	(nearest_common_dominator_of_uses): Tuplify.
	(statement_sink_location): Tuplify.  Remove parameter tobb and update
	caller.
	(sink_code_in_bb): Tuplify.
	* passes.c (init_optimization_passes): Re-enable pass_sink_code.

2008-04-14  Bill Maddox  <maddox@google.com>

	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edge,
	create_edge_and_update_destination_phis, redirection_block_p):
	Convert to tuples.
	* tree.c (iterative_hash_exprs_commutative): New function.
	* tree.h (iterative_hash_exprs_commutative): Declare.
	* tree-ssa_dom.c (enum expr_kind, struct hashable_expr,
	struct cond_equivalence): New types.
	(struct edge_info): Use struct cond_equivalence.
	(avail_exprs_stack): Stack of expr_hash_elt*, not expressions.
	(stmts_to_rescan): Use type gimple for statements.
	(struct expr_hash_elt): Represent statement RHS with hashable_expr,
	not a tree.  Add unique stamp to each entry for efficient and reliable
	element removal.
	(struct eq_expr_value): Delete unused type.
	(initialize_hash_element): Convert to tuples.  Now applies
	only to statements.
	(initialize_expr_from_cond, initialize_hash_element_from_expr):
	New functions.  Replace former functionality of initialize_hash_element
	for conditions presented as trees.
	(hashable_expr_equal_p, iterative_hash_hashable_expr): New functions.
	(print_expr_hash_elt): New function.
	(free_expr_hash_elt): New function.
	(tree_ssa_dominator_optimize): Convert to tuples
	(canonicalize_comparison): Convert to tuples.
	(remove_local_expressions_from_table): Use new avail_exprs_stack
	representation.  Add optional extra diagnostic details.
	(simplify_stmt_for_jump_threading, dom_thread_across_edge,
	dom_opt_finalize_block): Convert to tuples.
	(record_cond, build_and_record_new_cond): Convert to tuples.
	Use new hashable_expr type.  Extra diagnostic details.
	(record_const_or_copy_1): Extra diagnostic details.
	(record_const_or_copy): Add assertion.
	(simple_iv_increment_p, cprop_into_successor_phis, record_edge_info):
	Convert to tuples.
	(eliminate_redundant_computations): Convert to tuples.
	Additional diagnostic details.
	(gimple_assign_unary_useless_conversion_p): New function.
	(record_equivalences_from_statement): Convert to tuples.
	Additional diagnostic details.
	(cprop_operand, cprop_into_stmt): Convert to tuples.
	(optimize_stmt): Convert to tuples.
	(lookup_avail_expr): Use hashable_expr.  Additional diagnostic details.
	(avail_expr_hash, avail_expr_eq): Use hashable_expr.
	* tree-ssa-copy.c (may_propagate_copy_into_stmt,
	propagate_tree_value_into_stmt): New functions.
	* tree-flow.h: (may_propagate_copy_into_stmt,
	propagate_tree_value_into_stmt): Declare.
	(thread_across_edge): Change declaration of callback to accept a
	gimple statement.
	* gimple.c (gimple_call_flags): Declare argument as a constant.
	(gimple_has_side_effects): Declare argument as a constant.
	Examine function arguments for side-effects.
	(gimple_rhs_has_side_effects): New function.
	* gimple.h (gimple_call_flags): Declare argument as a constant.
	(gimple_has_side_effects): Declare argument as a constant.
	(gimple_rhs_has_side_effects): Declare new function.
	(is_gimple_assign): New inline function.
	(gimple_switch_index_ptr): New function.
	* passes.c (init_optimization_passes): Enable pass_dominator.
	* tree-ssa_threadedge.c (potentially_threadable_block,
	lhs_of_dominating_assert, record_temporary_equivalences_from_phis):
	Convert to tuples.
	(fold_assignment_stmt): New function.
	(record_temporary_equivalences_from_stmts_at_dest,
	simplify_control_stmt_condition, thread_across_edge): Convert to tuples.

2008-04-14  Doug Kwan  <dougkwan@google.com>

	* c-typeck.c (convert_for_assignment): Call c_common_unsigned_type

2008-04-14  Doug Kwan  <dougkwan@google.com>

	* gimple-iterator.c (gsi_move_to_bb_end): Use gsi_last_bb
	instead of calling both gsi_last and bb_seq.
	* passes.c (init_optimization_passes): Re-eanble second tail-recursion
	pass.

2008-04-14  Doug Kwan  <dougkwan@google.com>

	* tree-nrv.c (dest_safe_for_nrv_p):  Uncomment.
 	(execute_return_slot_opt): Tuplify.
	* passes.c (init_optimization_passes): Re-enable pass_return_slot.

2008-04-14  Aldy Hernandez  <aldyh@redhat.com>

	* tree-cfg.c (gimple_can_merge_blocks_p): Fix typo.
	* omp-low.c (maybe_lookup_ctx): Uncomment and set ATTRIBUTE_UNUSED.
	(lower_lastprivate_clauses): Same.
	(lower_reduction_clauses): Same.
	(lower_send_clauses): Same.
	(expand_omp_for_generic): Uncomment and convert for tuples.
	(expand_omp_for): Remove fixme.
	(expand_omp_sections): Same.
	(lower_omp_parallel): Partially convert for tuples.
	(lower_omp_regimplify_p): Rename from lower_omp_2.
	(lower_omp_1): Convert for tuples.
	(lower_omp): Same.
	(gimple-dummy.c): Add lower_omp_parallel, lower_omp_for,
	lower_omp_sections, lower_omp_single, lower_omp_master,
	lower_omp_ordered, lower_omp_critical.

2008-04-13  Diego Novillo  <dnovillo@google.com>

	* tree-cfg.c (need_fake_edge_p): Initialize CALL_FLAGS.

2008-04-12  Rafael Espíndola <espindola@google.com>

	Merge with mainline @134237.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-13  Rafael Espíndola <espindola@google.com>

	* config/extensions.m4: Add. Was missing from previous merge.

2008-04-12  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133860.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-11  Oleg Ryjkov  <olegr@google.com>

	* tree-sra.c (scalarize_use): Moving a variable declaration to
	the top of a block.

2008-04-11  Oleg Ryjkov  <olegr@google.com>

	* tree-sra.c (insert_edge_copies_seq): Removed unused variable.

2008-04-11  Oleg Ryjkov  <olegr@google.com>

	* tree-sra.c (sra_build_assignment): Tuplified.
	(mark_all_v_defs): Removed.
	(mark_all_v_defs_seq, mark_all_v_defs_stmt): New functions.
	(sra_walk_expr): Tuplified.
	(sra_walk_tree_list): Removed.
	(sra_walk_call_expr, sra_walk_gimple_asm,
	sra_walk_gimple_modifY_stmt, ): Tuplified and renamed.
	(sra_walk_gimple_call, sra_walk_gimple_asm,
	sra_walk_gimple_assign): New names for tuplified functions.
	(sra_walk_function, find_candidates_for_sra, scan_use, scan_copy,
	scan_ldst, instantiate_element, decide_instantiations,
	mark_all_v_defs_1, sra_build_assignment, sra_build_bf_assignment,
	sra_build_elt_assignment, generate_copy_inout,
	generate_element_copy, generate_element_zero,
	generate_one_element_init, generate_element_init_1): Tuplified.
	(insert_edge_copies): Removed.
	(insert_edge_copies_seq): New function.
	(sra_insert_before, sra_insert_after, sra_replace,
	sra_explode_bitfield_assignment, sra_sync_for_bitfield_assignment,
	scalarize_use, scalarize_copy, scalarize_init, mark_no_trap,
	scalarize_ldst, scalarize_parms, scalarize_function): Tuplified.
	(tree_sra, tree_sra_early): Enabled
	(sra_init_cache): Removed extra space.
	* tree-flow.h (insert_edge_copies_seq): New declaration.
	* gimple.h (gimple_asm_input_op_ptr, gimple_asm_output_op_ptr,
	gimple_return_retval_ptr): New functions.
	* passes.c (init_optimization_passes): Enabled pass_sra,
	pass_early_sra.

2008-04-11  Doug Kwan  <dougkwan@google.com>

	* ipa-pure-const.c (get_asm_expr_operands): Tuplify.
	(get_asm_expr_operands): Tuplify.
	(check_call): Tuplify. Add code to handle return value assignment.
 	(scan_function): Remove. Original code is tuplified and split into
	two new functions scan_function_op and scan_function_stmt.
	(scan_function_op): New function.
	(scan_function_stmt): New function.
	(analyze_function): Tuplify and re-enable previously disabled code. 
	* passes.c (init_optimization_passes): Re-enable pass_ipa_pure_const.

2008-04-11 Oleg Ryjkov  <olegr@google.com>

	* builtins.c (fold_call_stmt): Return the proper value.
	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Modify arguments to
	allow this function to be called on a GIMPLE_ASSIGN.
	(fold_stmt_r): Update the call to maybe_fold_stmt_addition.
	(fold_gimple_assign): Manually call maybe_fold_stmt_addition to
	fold a POINTER_PLUS_EXPR.

2008-04-11  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-phiprop.c (File): Uncomment all previously disabled code.
	(struct phiprop_d): Change type of vop_stmt to gimple.
	(phivn_valid_p): Tuplify.
	(phiprop_insert_phi): Tuplify.
	(propagate_with_phi): Tuplify.
	(tree_ssa_phiprop_1): Tuplify.
	(tree_ssa_phiprop): Tuplify.
	* passes.c (init_optimization_passes): Re-enable pass_phiprop.

2008-04-11  Rafael Espíndola <espindola@google.com>

	* tree-ssa-math-opts.c (execute_cse_sincos_1): fix warning.

2008-04-10  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00913.html

	* ipa-inline.c (cgraph_clone_inlined_nodes): Change uses
	of DECL_SAVED_TREE with gimple_body.
	(cgraph_decide_inlining_incrementally): Likewise.
	* gimple-iterator.c (gsi_insert_seq_before_without_update):
	Do nothing if SEQ is NULL.
	(gsi_insert_seq_after_without_update): Likewise.
	* tree-ssa-live.c (mark_all_vars_used_1): Do not handle
	EXPR trees.
	(remove_unused_locals): Mark the gimple_block of every
	statement as used.
	* tree-inline.c (remap_gimple_stmt): Forward declare.
	(remap_decls): Tidy comments.
	(remap_gimple_seq): New.
	(copy_gimple_bind): New.
	(remap_gimple_stmt): Call it.
	Handle High GIMPLE statements.
	(copy_bb): Regimplify operands on COPY_GSI instead of
	GSI.
	(copy_cfg_body): Tidy.
	(copy_generic_body): Remove unused function.
	(clone_body): Tuplify.
	* c-common.c (c_warn_unused_result): Remove assertion for
	FUNCTION_TYPE.
	* gimple.c (gimple_seq_copy): Rename from
	gimple_seq_deep_copy.  Update all users.
	(walk_gimple_stmt): Assert that STMT has no substatements
	in the default case.
	(gimple_copy_1): Merge into gimple_copy.
	(gimple_copy): Always do deep copying.
	Handle statements with substatements.
	(gimple_shallow_copy): Remove unused function.
	(gimple_deep_copy): Remove.  Update all users.
	* gimple.h: Tidy comments and structure fields
	everywhere.
	(gimple_has_substatements): New.
	(walk_stmt_fn): Change last argument to struct walk_stmt_info *.
	Update all users.

2008-04-10 Oleg Ryjkov  <olegr@google.com>

	* tree.h (struct tree_base): Added a new flag default_def_flag.
	(SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.

2008-04-08  Doug Kwan  <dougkwan@google.com>

	* gimplify.c (gimple_push_cleanup): Initialize cleanup_stmts to NULL.

2008-04-08  Doug Kwan  <dougkwan@google.com>
	
	* tree-tailcall.c (struct tailcall): Remove call_block and replace
	call_bsi by call_gsi.
	(independent_of_stmt_p): Change type of parameter 'at' to GIMPLE and
	change all tree using code to GIMPLE using equivalent.
	Remove parameter block_stmt_iterator type parameter bsi with
	gimple_stmt_iterator type parameter gsi. Replace uses of bsi with
	that of gsi in function body as appropriate.
	(process_assignment):  Remove parameter 'ass' and change type of
	parameter 'stmt' to GIMPLE.  Change all tree using code to GIMPLE
	using equivalent.
	(propagate_through_phis, eliminate_tail_call, optimize_tail_call):
	Change all tree using code to GIMPLE using equivalent.
	(find_tail_calls): Change all tree using code to GIMPLE using
	equivalent.  Remove code that handles GIMPLE_MODIFY_STMT containing
	a CALL_EXPR.
	(add_successor_phi_arg, adjust_return_value_with_ops,
	update_accumulator_with_ops, adjust_accumulator_values,
	create_tailcall_accumulator): New functions from refactoring of
	duplicated logic.
	(adjust_accumulator_values, adjust_return_value): Refactor.
	(tree_optimize_tail_calls_1): Refactor and change all tree using code
	to GIMPLE using equivalent.  Remove code to reverse phi list.
	* passes.c (init_optimization_passes):  Re-enable pass_tail_recursion
	and pass_tail_calls.

2008-04-04  Doug Kwan  <dougkwan@google.com>

	* tree-ssa-math-opts.c (struct occurrence): Change field type of
	recip_def_stmt to gimple.
	(is_division_by): Tuplify.
	(insert_reciprocals): Tuplify.
	(replace_reciprocals): Tuplify.
	(execute_cse_reciprocals_1): Tuplify.
	(execute_cse_reciprocals): Tuplify.
	(maybe_record_sincos): Use vector of gimples instead of vector of
	trees.
	(execute_cse_sincos_1): Tuplify.  When adjusting recorded old call
	sites, generate new gimple assign statements and remove old gimple
	call statements.
	(execute_cse_sincos): Tuplify.
	(execute_convert_to_rsqrt): Tuplify.
	* passes.c (init_optimization_passes): Enable pass_cse_sincos,
	pass_cse_reciprocals and pass_convert_to_rsqrt.

2008-04-04  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (gimple_build_cond_empty): New.
	(expand_parallel_call): Convert COND_EXPR to GIMPLE_COND.
	(expand_omp_for_generic): Same.
	(expand_omp_for_static_nochunk): Same. 
	(expand_omp_for_static_chunk): Same.
	(expand_omp_atomic_pipeline): Same.

2008-04-04  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00413.html

	* tree-ssa-loop-im.c (movement_possibility): Return
	MOVE_IMPOSSIBLE if that statement makes no assignment.
	* tree-complex.c (get_component_ssa_name): Fix comment.
	(set_component_ssa_name): Assert that COMP's definition
	is LAST.
	* cgraph.c (cgraph_update_edges_for_call_stmt): Tuplify.
	(dump_cgraph_node): Likewise.
	* tree.c (auto_var_in_fn_p): Fix comment.
	* cgraphunit.c (verify_cgraph_node): Remove tuples hack
	that avoided verifying nodes.
	* gimple-pretty-print.c (dump_gimple_asm): Show the
	volatile flag.

	* gimple-dummy.c (optimize_inline_calls): Remove.
	(tree_function_versioning): Remove.
	(tree_versionalbe_function_p): Remove.
	* ipa-inline.c (cgraph_clone_inlined_bodies): Re-format.
	(cgraph_decide_inlining): Re-format.
	(cgraph_decide_inlining_incrementally): Re-format.
	(pass_ipa_inline): Re-format.
	* gimplify.c (gimplify_call_expr): Carry all the
	CALL_EXPR flags to the newly created GIMPLE_CALL.
	(gimplify_asm_expr): Carry ASM_VOLATILE_P and ASM_INPUT_P
	over to the new GIMPLE_ASM.
	* tree-dfa.c (find_new_referenced_vars): Change argument
	to gimple.  Update all callers.
	* cfgexpand.c (set_expr_location_r): New private.
	(gimple_to_tree): Call it.
	Set ASM_VOLATILE_P and ASM_INPUT_P for ASM_EXPRs.
	Carry flags from GIMPLE_CALL for CALL_EXPRs.
	Set TREE_BLOCK on the newly created expression.
	* tree-inline.c: Tuplify.
	* tree-inline.h: Tuplify.
	* tree-optimize.c (execute_fixup_cfg): Tuplify.
	* gimple.c (gimple_build_call_vec): Change second
	argument type to VEC(tree, heap).  Update all callers.
	(gimple_build_assign_with_ops): If the LHS is an
	SSA_NAME, set SSA_NAME_DEF_STMT on it.
	(walk_gimple_seq): Change return type to gimple.  Update
	all users.
	If walk_gimple_stmt returned a value, store it in
	WI->CALLBACK_RESULT.
	(walk_gimple_op): Walk gimple_call_chain_ptr() and
	gimple_call_fn_ptr() for GIMPLE_CALL.
	(walk_gimple_stmt): Add new local HANDLED_OPS.
	If callback_stmt() sets HANDLED_OPS, return its return
	value.
	If any call to walk_gimple_seq returns a non-NULL value,
	return WI->CALLBACK_RESULT.
	(gimple_copy_1): New function.
	(gimple_deep_copy): Rename from gimple_copy.  Update all
	users.
	Call gimple_copy_1.
	(gimple_shallow_copy): New.
	(gimple_regimplify_operands): New.
	* gimple.h (GF_ASM_INPUT): Define.
	(GF_ASM_VOLATILE): Define.
	(GF_CALL_CANNOT_INLINE): Define.
	(GF_CALL_FROM_THUNK): Define.
	(GF_CALL_RETURN_SLOT_OPT): Define.
	(GF_CALL_VA_ARG_PACK): Define.
	(gimple_stmt_iterator): Move earlier in the file.
	(gimple_omp_return_nowait_p): Fix return expression.
	(gimple_omp_section_last_p): Likewise.
	(gimple_omp_parallel_combined_p): Likewise.
	(gimple_call_noreturn_p): Likewise.
	(gimple_call_nothrow_p): Likewise.
	(gimple_asm_volatile_p): Likewise.
	(gimple_try_catch_is_cleanup): Likewise.
	(gimple_assign_set_rhs1): assert that RHS is a gimple
	operand.
	(is_gimple_call): New.  Change all users that tested
	gimple_code() == GIMPLE_CALL.
	(gimple_call_fn_ptr): New.
	(gimple_call_chain_ptr): New.
	(gimple_call_set_chain): Accept NULL values for CHAIN.
	(gimple_call_set_tail): Add bool argument specifying the
	value of the flag.  Update all users.
	(gimple_asm_set_volatile): Likewise.
	(gimple_call_set_cannot_inline): Rename from
	gimple_call_mark_uninlinable.  Add bool argument
	specifying the value of the flag.  Update all users.
	(gimple_call_set_return_slot_opt): New.
	(gimple_call_return_slot_opt_p): New.
	(gimple_call_set_from_thunk): New.
	(gimple_call_from_thunk_p): New.
	(gimple_call_va_arg_pack_p): New.
	(gimple_call_copy_flags): New.
	(gimple_asm_set_input): New.
	(gimple_asm_input_p): New.
	(gimple_asm_clear_volatile): Remove.
	(walk_stmt_fn): Add second argument bool *.  Update all
	users.
	(struct walk_stmt_info): Add new field callback_result.
	* tree-cfg.c (gimple_split_block): Tuplify.
	(gimple_block_ends_with_condjump_p): Tuplify.
	(need_fake_edge_p): Tuplify.
	(gimple_flow_call_edges_add): Tuplify.
	(gimple_purge_dead_abnormal_call_edges): Tuplify.
	(gimple_purge_dead_eh_edges): Remove ATTRIBUTE_UNUSED.
	(gimple_cfg_hooks): Add gimple_block_ends_with_condjump_p
	and gimple_flow_call_edges_add
	* passes.c (init_optimization_passes): Enable
	pass_cleanup_cfg, pass_inline_parameters,
	pass_ipa_inline and pass_apply_inline.
	(execute_todo): Re-enable check for TODO_update_ssa_any
	if need_ssa_update_p() returns true.
	* tree-ssa-operands.c (ssa_operands_active): Return false
	if cfun is NULL.


2008-04-04  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133632.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-04  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133631.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-04  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133630.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-03  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (expand_omp_sections): Use
	gimple_omp_sections_control.
	(lower_omp_sections): Same.
	* gimplify.c (gimplify_omp_workshare): Adjust OMP clauses before
	creating gimple tuple.
	Add gimple tuple to sequence.
	Set OMP_SECTIONS_CONTROL in newly created tuple.
	* gimple.h (gimple_statement_omp_sections): Add control.
	(gimple_omp_sections_control): New.
	(gimple_omp_sections_control_ptr): New.
	(gimple_omp_sections_set_control): New.

2008-04-03  Oleg Ryjkov  <olegr@google.com>

	* tree-nested.c (convert_nl_goto_receiver): Changed to hadle gimple
	statements instead of trees.
	(lower_nested_functions): Pass convert_nl_goto_receiver as the first
	parameter to walk_all_functions.

2008-04-03  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133624.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-03  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133612.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-03  Aldy Hernandez  <aldyh@redhat.com>

	* tree-pretty-print.c (dump_generic_node): Remove
	OMP_{RETURN,CONTINUE} cases.
	* tree.h (OMP_RETURN_NOWAIT): Remove.
	* omp-low.c (dump_omp_region): Rename OMP_{CONTINUE,RETURN} to
	GIMPLE_OMP_{CONTINUE,RETURN}.
	(expand_omp_for_generic): Handle new arguments to
	GIMPLE_OMP_CONTINUE.
	(expand_omp_for_static_nochunk): Same.
	(expand_omp_for_static_chunk): Same.
	(expand_omp_sections): Same.
	(expand_omp): Rename all OMP_* to GIMPLE_OMP_*.
	(lower_omp_sections): Rename OMP_CONTINUE to GIMPLE_OMP_CONTINUE.
	(lower_omp_for): Same.
	* tree-gimple.c (is_gimple_stmt): Remove OMP_{RETURN,CONTINUE}
	cases.
	* gsstruct.def: Add GSS_OMP_CONTINUE.
	* gimple-pretty-print.c (dump_gimple_omp_continue): New.
	(dump_gimple_omp_return): New.
	(dump_gimple_stmt): Add cases for GIMPLE_OMP_{CONTINUE,RETURN}.
	* gimplify.c (gimplify_expr): Remove cases for
	OMP_{CONTINUE,RETURN}.
	* tree.def (DEFTREECODE): Remove OMP_{RETURN,CONTINUE}.
	* tree-cfgcleanup.c (cleanup_omp_return): Rename
	OMP_SECTIONS_SWITCH to GIMPLE_OMP_SECTIONS_SWITCH.
	* gimple.c (gss_for_code): GIMPLE_OMP_RETURN returns GSS_BASE.
	GIMPLE_OMP_CONTINUE return GSS_OMP_CONTINUE.
	(gimple_size): Adjust size of GIMPLE_OMP_{RETURN,CONTINUE}.
	(gimple_build_omp_continue): Change arguments.
	(walk_gimple_op): Walk GIMPLE_OMP_CONTINUE operands.
	(walk_gimple_stmt): Remove GIMPLE_OMP_CONTINUE case.
	* gimple.h (struct gimple_statement_omp_continue): New.
	(union gimple_statement_d): Add gimple_omp_continue.
	(gimple_build_omp_continue): Change argument types in prototype.
	(gimple_omp_return_set_nowait): Rename OMP_RETURN to
	GIMPLE_OMP_RETURN.
	(gimple_omp_continue_control_def): New.
	(gimple_omp_continue_control_def_ptr): New.
	(gimple_omp_continue_set_control_def): New.
	(gimple_omp_continue_control_use): New.
	(gimple_omp_continue_control_use_ptr): New.
	(gimple_omp_continue_set_control_use): New.
	* tree-cfg.c (make_edges): Rename OMP_ to GIMPLE_OMP_.
	(gimple_redirect_edge_and_branch): Same.
	* tree-ssa-operands.c (get_expr_operands): Remove OMP_CONTINUE
	case.

2008-04-02  Doug Kwan  <dougkwan@google.com>

	* tree-complex.c (expand_complex_comparison): Set condition code
	correctly for the NE_EXPR case.
	* cfgexpand.c (gimple_to_tree): Generate assignment to return value
	if necessary.

2008-04-02  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133597.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-02  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133527.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-02  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133519.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-02  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133453.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-04-01  Doug Kwan  <dougkwan@google.com>
	    Bill Maddox  <maddox@google.com>.

	* value-prof.c (interesting_stringop_to_profile_p) Call
	validate_gimple_arglist instead of validate_arglist.
	* tree.h (validate_arglist): New declaration.
	* builtins.c (expand_builtin_setjmp_receiver, expand_builtin_longjmp,
	expand_builtin_nonlocal_goto, expand_builtin_nonlocal_goto,
	expand_builtin_update_setjmp_buf, expand_builtin_prefetch,
	expand_builtin_apply, expand_builtin_return, expand_builtin_mathfn,
	expand_builtin_mathfn_2, expand_builtin_mathfn_3,
	expand_builtin_interclass_mathfn, expand_builtin_sincos,
	expand_builtin_cexpi, expand_builtin_int_roundingfn,
	expand_builtin_int_roundingfn_2, expand_builtin_pow,
	expand_builtin_powi, expand_builtin_strlen, expand_builtin_strlen,
	expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
	expand_builtin_memcpy, expand_builtin_memcpy,
	expand_builtin_mempcpy_args, expand_builtin_bcopy, expand_movstr,
	expand_builtin_stpcpy, expand_builtin_strncpy, builtin_memset_gen_str,
	expand_builtin_bzero, expand_builtin_memchr, expand_builtin_memcmp,
	expand_builtin_strcmp, expand_builtin_strncmp, expand_builtin_strcat,
	expand_builtin_strncat, expand_builtin_strspn, expand_builtin_alloca,
	expand_builtin_bswap, expand_builtin_unop, expand_builtin_fputs,
	expand_builtin_fabs, expand_builtin_copysign,
	expand_builtin___clear_cache, expand_builtin_init_trampoline,
	expand_builtin_adjust_trampoline, expand_builtin_signbit,
	expand_builtin, validate_arg, expand_builtin_object_size,
	expand_builtin_object_size, expand_builtin_memory_chk) Re-enable code
	previously disabled for GIMPLE.
	(expand_builtin_memcpy, expand_builtin_memset_args): Re-enable code
	previously disabled for GIMPLE.  Look up tree attribute for original
	GIMPLE statement.
	(validate_arglist): Use old interface of tree node instead of GIMPLE
	statement.
	(validate_gimple_arglist):  New function.
	* cfgexpand.c (gimple_to_tree): Set GIMPLE statement tree attribute
	for builtin function calls.
	* tree-flow.h (struct tree_ann_common_d): New field stmt.
	* gimple.h (validate_gimple_arglist): New declaration.
	(validate_arglist): Moved to tree.h.

2008-03-31  Oleg Ryjkov  <olegr@google.com>

	* gimplify.c (gimplify_switch_expr): Verify the return value from
	gimplify_expr.

2008-03-31  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133452.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-31  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133440.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-31  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133423.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-30  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133342.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-28  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133341.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-28  Oleg Ryjkov  <olegr@google.com>

	* tree-eh.c (replace_goto_queue_1): Do a deep copy of the replacement
	sequence.
	(maybe_record_in_goto_queue): Set is_label flag when recording
	GIMPLE_GOTOs.
	(do_return_redirection, do_return_redirection): Changed to set
	cont_stmt.
	(lower_try_finally_onedest): Fix the code that assumes that gotos
	themselves(instead of the labels) are recorded in the goto_queue.
	(lower_try_finally_copy): Likewise.
	(lower_try_finally_switch): Likewise, also fix the VEC_* operations.
	* gimple.h (gimple_build_switch): Fixed comment.

2008-03-28  Doug Kwan  <dougkwan@google.com>

	* omp-low.c (expand_omp_sections): Fix build breakage due to an
	uninitialized variable.

2008-03-28  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133315.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-28  Diego Novillo  <dnovillo@google.com>

	* omp-low.c (expand_omp_for_static_chunk): Initialize
	V_MAIN and V_BACK.
	(expand_omp_for): Initialize VIN.

2008-03-28  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133313.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-27  Doug Kwan  <dougkwan@google.com>

	* c-decl.c (merge_decls): Also copy gimple bodies of decls.
	* gimplify.c (gimplify_call_expr): Do not exit early when
	gimplifying __builtin_va_start().

2008-03-27  Oleg Ryjkov  <olegr@google.com>

	* gimple.c (walk_gimple_op): Add a check for assignments with more
	than one operand on the LHS.

2008-03-27  Aldy Hernandez  <aldyh@redhat.com>

	* tree.c (empty_body_p): Remove.
	* tree.h (empty_body_p): Remove prototype.
	* omp-low.c (struct omp_context): Convert to tuples.
	(struct omp_context): Comment and convert to tuples.
	(scan_omp_op): New.
	(is_parallel_ctx): Convert to tuples.
	(extract_omp_for_data): Same.
	(workshare_safe_to_combine_p): Same.
	(get_ws_args_for): Same.
	(determine_parallel_type): Same.
	(use_pointer_for_field): Same.
	(dump_omp_region): Same.
	(debug_all_omp_regions): Same.
	(new_omp_region): Same.
	(new_omp_context): Same.
	(scan_sharing_clauses): Same.
	(create_omp_child_function): Same.
	(scan_omp_parallel): Same.
	(scan_omp_for): Same.
	(scan_omp_sections): Same.
	(scan_omp_single): Same.
	(check_omp_nesting_restrictions): Same.
	(scan_omp_1_op): New.
	(scan_omp_1_stmt): Rename from scan_omp_1.  Rewrite for tuples.
	(scan_omp): Convert to tuples.
	(build_omp_barrier): Same.
	(maybe_lookup_ctx): Same.
	(lower_rec_input_clauses): Same.
	(lower_lastprivate_clauses): Same.
	(lower_reduction_clauses): Same.
	(lower_copyprivate_clauses): Same.
	(lower_send_clauses): Same.
	(lower_send_shared_vars): Same.
	(expand_parallel_call): Same.
	(remove_exit_barrier): Same.
	(remove_exit_barriers): Same.
	(optimize_omp_library_calls): Same.
	(expand_omp_parallel): Same.
	(expand_omp_for_generic): Comment out, and convert to tuples.
	(expand_omp_for_static_nochunk): Convert to tuples.
	(expand_omp_for_static_chunk): Same.
	(expand_omp_for): Same.
	(expand_omp_sections): Same.
	(expand_omp_synch): Same.
	(expand_omp_atomic_fetch_op): Same.
	(expand_omp_atomic_pipeline): Same.
	(expand_omp_atomic_mutex): Same.
	(expand_omp_atomic): Same.
	(expand_omp): Same.
	(build_omp_regions_1): Same. 
	(execute_expand_omp): Enable.
	(execute_lower_omp): Enable and convert to tuples.
	* gimple-dummy.c (omp_reduction_init): Remove.
	* tree-flow.h (struct omp_region): Convert 'type' to tuples.
	(new_omp_region): Adjust prototype for tuples.
	* gimple.c (empty_stmt_p): New.
	(empty_body_p): New.
	* gimple.h (empty_body_p): New prototype.
	(gimple_has_location): Remove fixmes.
	* tree-cfg.c (gimple_block_label): Remove ATTRIBUTE_UNUSED.

2008-03-27  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133311.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-27  Rafael Espíndola <espindola@google.com>

	* gcc/tree-nested.c (save_tmp_var): Use gsi_insert_after_without_update
	instead of gsi_insert_after.

2008-03-26 Jakub Staszak <kuba@et.pl>

	* gimple.h (gimple_uid, gimple_set_uid): Defined.
	(gimple_statement_base): Field UID added.
	* tree-ssa-dse.c (execute_simple_dse): #if 0 removed, bitmap_empty_p
	condition added. (memory_ssa_name_same, memory_address_same,
	get_kill_of_stmt_lhs, dse_possible_dead_store_p, dse_optimize_stmt,
	dse_record_phis, dse_finalize_block, tree_ssa_dse): Tuplified.
	* passes.c (init_optimization_passes): pass_simple_dse and pass_dse
	enabled.
	* testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: {dg-final} changed.
	* testsuite/gcc.dg/tree-ssa/pr30375.c: {dg-final} changed.

2008-03-26  Rafael Espíndola <espindola@google.com>
	* gcc/tree-ssa-operands.c (ssa_operands_active): Assert that cfun is
	not NULL.
	* gcc/tree-nested.c (init_tmp_var): Use
	gsi_insert_before_without_update instead of gsi_insert_before.

2008-03-25  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133309.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-25  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133306.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-25  Bill Maddox  <maddox@google.com>

	* tree-ssa-dom.c (loop_depth_of_name): Tuplify.
	* tree-ssa-copy.c (stmt_may_generate_copy,
	copy_prop_visit_assignment, copy_prop_visi_cond_stmt,
	copy_prop_visit_stmt, copy_prop_visit_phi_node,
	init_copy_prop, execute_copy_prop): Tuplify.
	* passes.c (init_optimization_passes):
	Enable pass_copy_prop.

2008-03-25  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133257.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-25  Oleg Ryjkov  <olegr@google.com>

	* gimple.c (gimple_build_bind): Added a new parameter - the 
	containing block.
	* gimple.h (gimple_build_bind): Changed the header accordingly.
	* gimplify.c (gimplify_bind_expr, gimplify_function_tree): Updated
	the callers of gimple_build_bind.
	(gimplify_body): Updated the call to gimple_build_bind and moved
	the copying of block information into gimplify_bind_expr.

2008-03-25  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133255.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-25  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133251.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-25  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133250.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-24  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133246.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-24  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133222.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-24  Andrew Pinski  <pinskia@gmail.com>

	* passes.c (init_optimization_passes): Enable pass_split_crit_edges.

2008-03-24  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133169.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-21  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133168.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-21  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133167.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-20  Oleg Ryjkov  <olegr@google.com>

	* tree-eh.c (lower_try_finally): Correctly set the lowered sequence.

2008-03-20  Jakub Staszak  <kuba@et.pl>
            Oleg Ryjkov  <olegr@google.com>

	* tree-ssa-sink.c (is_hidden_global_store): Tuplified.
	* tree-ssa-dce.c (mark_stmt_necessary, mark_operand_necessary,
	mark_stmt_if_obviously_necessary,
	mark_control_dependent_edges_necessary,
	find_obviously_necessary_stmts, propagate_necessity,
	remove_dead_phis, eliminate_unnecessary_stmts, tree_dce_init,
	tree_dce_done): Tuplified.
	* tree-flow.h (is_hidden_global_store): Tuplified the declaration.
	* passes.c (init_optimization_passes): Enabled pass_dce and
	pass_cd_dce.

2008-03-20  Oleg Ryjkov <olegr@google.com>

	* tree-complex.c (init_dont_simulate_again, complex_visit_stmt,
	update_complex_components, expand_complex_operations_1): Consider
	GIMPLE_CALLs with a lhs, not only GIMPLE_ASSIGNs.
	* gimplify.c (get_tmp_var_for): Removed.
	(gimplify_call_expr): Remove call to get_tmp_var_for, set
	gimple_register on a new lhs in some cases.

2008-03-20  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133162.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-20  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133161.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-20  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133140.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-20  Rafael Espíndola <espindola@google.com>

	Merge with mainline @133138.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-18  Bill Maddox  <maddox@google.com>

	* builtins.c (fold_builtin_object_size):
	Enable call to compute_builtin_object_size, previously
	stubbed out awaiting tuplification.
	* tree-ssa-ccp.c (valid_gimple_rhs_p, valid_gimple_call_p,
	move_ssa_defining_stmt_for_defs, update_call_from_tree):
	Deleted, moved to tree-ssa-propagate.c.
	(get_maxval_strlen): Use gimple_assign_single_p.
	Handle assignment with unary NOP correctly.
	* tree-ssa-propagate.c (valid_gimple_rhs_p, valid_gimple_call_p,
	move_ssa_defining_stmt_for_defs, update_call_from_tree):
	Moved here from tree-ssa-ccp.c.
	* tree-ssa-propagate.h (valid_gimple_rhs_p, valid_gimple_call_p,
	move_ssa_defining_stmt_for_defs, update_call_from_tree): Declared.
	* gimple-dummy.c (compute_builtin_object_size): Removed dummy.
	* tree_object_size.c (addr_object_size, alloc_object_size)
	Tuplified.
	(pass_through_call, compute_builtin_object_size): Tuplified.
	(expr_object_size): Tuplified.  Some cases broken out.
	(plus_expr_object_size): Deleted.
	(call_object_size, unknown_object_size, plus_stmt_object_size):
	New functions.  Handle cases broken out from expr_object_size.
	(cond_expr_object_size): Fix comment.
	(collect_object_sizes_for): Tuplify.
	(check_for_plus_in_loops_1, check_for_plus_in_loops): Tuplify.
	(compute_object_sizes): Tuplify.
	* gimple.c (gimple_assign_single_p, gimple_assign_unary_nop_p):
	New functions.
	* gimple.h (gimple_assign_single_p, gimple_assign_unary_nop_p):
	Declare.
	* passes.c (init_optimization_passes): Enable pass_object_sizes.

2008-03-18  Diego Novillo  <dnovillo@google.com>
            Oleg Ryjkov  <olegr@google.com>

	* gimplify.c (gimplify_body): Copy the block information from
	the tree function body to gimple function body.
	(gimplify_function_tree): Correctly wrap the function body
	into the try/finally block if creating one.
	* gimple.c (gimple_seq_has_side_effects): Removed.
	* gimple.h (gimple_seq_has_side_effects): Removed declaration.
	* tree-cfg.c (remove_useless_stmts_tf, remove_useless_stmts_tc):
	Modified to use gimple_seq_empty_p instead of
	gimple_seq_has_side_effects.

2008-03-18  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (walk_gimple_stmt): Collapse common code.
	Add case for GIMPLE_WITH_CLEANUP_EXPR.

2008-03-17  Zdenek Dvorak  <ook@ucw.cz>

	* gimple-iterator.c (gsi_for_stmt): Use gsi_start_phis.
	(gsi_start_phis): New function.
	* gimple.h (gsi_start_phis): Declare.
	* tree-into-ssa.c (initialize_flags_in_bb, rewrite_initialize_block,
	rewrite_add_phi_arguments, rewrite_update_init_block,
	prepare_block_for_update): Use gsi_start_phis.
	* tree-complex.c (init_dont_simulate_again, update_phi_components):
	Ditto.
	* tree-ssa-loop-manip.c (find_uses_to_rename_bb,
	verify_loop_closed_ssa, split_loop_exit_edge,
	tree_transform_and_unroll_loop): Ditto.
	* tree-scalar-evolution.c (loop_closed_phi_def,
	analyze_scalar_evolution_for_all_loop_phi_nodes, scev_const_prop):
	Ditto.
	* tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_args):
	Ditto.
	* tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
	* tree-ssa-ccp.c (ccp_initialize): Ditto.
	* tree-ssa-loop-ivopts.c (find_bivs, mark_bivs,
	find_interesting_uses_outside, find_interesting_uses,
	determine_set_costs): Ditto.
	* tree-ssa-propagate.c (simulate_block, ssa_prop_init,
	substitute_and_fold): Ditto.
	* tree-ssa-alias.c (dump_points_to_info, create_structure_vars): Ditto.
	* gimple-pretty-print.c (dump_phi_nodes): Ditto.
	* tree-data-ref.c (stmts_from_loop): Ditto.
	* tree-ssa-coalesce.c (build_ssa_conflict_graph,
	create_outofssa_var_map, coalesce_partitions): Ditto.
	* tree-dfa.c (collect_dfa_stats): Ditto.
	* tree-cfgcleanup.c (phi_alternatives_equal, remove_forwarder_block,
	remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
	* tree-ssa-live.c (remove_unused_locals, calculate_live_on_exit,
	verify_live_on_entry): Ditto.
	* tree-ssa.c (ssa_redirect_edge, flush_pending_stmts, verify_ssa,
	execute_late_warn_uninitialized, execute_update_addresses_taken):
	Ditto.
	* tree-outof-ssa.c (eliminate_build, eliminate_virtual_phis,
	rewrite_trees, remove_ssa_form, insert_backedge_copies):
	Ditto.
	* cfgloop.c (find_subloop_latch_edge_by_ivs): Ditto.
	* tree-ssa-structalias.c (compute_points_to_sets, ipa_pta_execute):
	Ditto.
	* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block,
	reinstall_phi_args, verify_stmts, gimple_make_forwarder_block,
	add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi):
	Ditto.

2008-03-16  Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-loop-ivopts.c: Tuplify.
	* gimple-dummy.c (multiplier_allowed_in_address_p, multiply_by_cost,
	tree_ssa_iv_optimize): Removed.
	* tree-ssa-phiopt.c (empty_block_p): Tuplify.
	* gimple.h (gimple_cond_lhs_ptr, gimple_cond_rhs_ptr): New.
	* passes.c (init_optimization_passes): Enable pass_iv_optimize.

	* gimplify.c (gimplify_omp_workshare, gimplify_expr): Avoid using
	uninitialized sequence.

2008-03-13  Bill Maddox  <maddox@google.com>

	* tree.h (fold_call_stmt, gimple_fold_builtin_snprintf_chk):
	Declare new functions.
	* builtins.c (fold_builtin_object_size): Disable call to
	compute_builtin_object_size, which has not been converted.
	(gimple_rewrite_call_expr, gimple_fold_builtin_sprintf_chk,
	gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_varargs,
	fold_call_stmt): New functions.
	* tree-chrec.h (build_polynomial_chrec): Silence uninitialized
	variable warning.
	* tree-ssa-ccp.c (likely_value): Recognize additional cases
	of constant values.
	(surely_varying_stmt_p): Note that return statements are not
	interesting to CCP as they no longer contain assignments.
	(ccp_fold): Add missing spaces.
	(valid_gimple_call_p): New function.
	(get_maxval_strlen): Don't trip over unary operator.
	(ccp_fold_builtin): Use fold_call_stmt and
	gimple_fold_builtin_snprintf_chk.  Enable disabled
	call now that target has been converted for tuples.
	Add missing spaces.
	(move_ssa_defining_stmt_for_defs): New function.
	(update_call_from_tree): New function.
	(fold_gimple_call): Use update_call_from_tree.
	(fold_stmt_inplace): Assert that operand folding tree
	walk goes to completion, i.e., does not return non-null.
	(optimize_stack_restore, optimize_stdarg_builtin):
	Convert to tuples
	(convert_to_gimple_builtin): Removed.
	(gimplify_and_update_call_from_tree): New function.
	Replaces convert_to_gimple_builtin.
	(execute_fold_all_builtins): Convert to tuples.
	* tree-ssa-propagate.c (replace_uses_in): Removed
	replaced_address argument.  Made function static.
	(replace_vuses_in): Removed replaced_address argument.
	(substitute_and_fold): Removed replaced_address boolean,
	which was set but never examined.
	* tree-ssa-propagate.h (replace_uses_in): Removed declaration.
	* gimple-iterator.c (update_modified_stmt): Moved to
	head of file to avoid a forward declaration.
	(update_modified_stmts): New function.
	(gsi_insert_seq_before_without_update,
	gsi_insert_before_without_update,
	gsi_insert_seq_after_without_update,
	gsi_insert_after_without_update): New functions.
	(gsi_insert_before, gsi_insert_seq_before,
	gsi_insert_after, gsi_insert_seq_after): Call the
	_without_update variants.
	* gimplify.c (gimplify_seq_add_stmt, gimplify_seq_add_seq):
	New functions.
	(gimple_pop_condition, gimplify_return_expr, gimplify_loop_expr,
	gimplify_switch_expr, gimplify_case_label_expr,
	gimplify_self_mod_expr, gimplify_call_expr,
	gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
	gimplify_init_ctor_eval_range, gimpllify_modify_expr_complex_part,
	gimplify_modify_expr, gimplify_asm_expr, gimplify_cleanup_point_expr,
	gimple_push_cleanup, gimplify_omp_parallel, gimplify_omp_atomic,
	gimplify_expr, gimplify_body, gimplify_function_tree): When adding
	to statement sequences in the gimplifier, do not update operands.
	* tree-dfa.c (find_new_referenced_vars): Convert to tuples.
	* tree-flow.h (find_new_referenced_vars): Declare with new signature.
	* gimple.h (gimple_return_set_retval): Fix argument validation.
	(gsi_insert_seq_before_without_update,
	gsi_insert_before_without_update,
	gsi_insert_seq_after_without_update,
	gsi_insert_after_without_update): Declare new functions.
	* gimple.c (gimple_build_return): Rely on gimple_return_set_retval
	to perform argument validation.
	* passes.c (init_optimization_passes): Enable pass_fold_builtins.
	
2008-03-13  Oleg Ryjkov  <olegr@google.com>

	* tree-cfg.c (gimplify_val): Removed.
	(gimplify_build1, gimplify_build2, gimplify_build3): Use
	force_gimple_operand_gsi instead of gimplify_val.
	* tree-complex.c (extract_component): Use force_gimple_operand_gsi
	instead of gimplify_val.
	* tree-vect-generic.c (expand_vector_parallel): Ditto.

2008-03-13  Diego Novillo  <dnovillo@google.com>
	    Oleg Ryjkov  <olegr@google.com>

	* tree-ssa-operands.c (get_expr_operands): Handle FILTER_EXPR and
	EXC_PTR_EXPR.

2008-03-12  Diego Novillo  <dnovillo@google.com>
	    Oleg Ryjkov  <olegr@google.com>

	* cfgexpand.c (gimple_to_tree): Record the correct type when
	converting GIMPLE_CALL.

2008-03-12  Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-loop-im.c (stmt_cost, rewrite_bittest,
	determine_invariantness_stmt, gather_mem_refs_stmt):
	Use gimple_assign_rhs_code.
	* cfgexpand.c (gimple_to_tree): Ditto.
	* tree-inline.c (estimate_num_insns): Ditto.
	* tree-vect-generic.c (expand_vector_operations_1): Ditto.
	* tree-ssa-ccp.c (likely_value, ccp_fold, evaluate_stmt,
	* gimple.c (gimple_fold, gimple_assign_set_rhs_with_ops): Ditto.
	* tree-ssa-structalias.c (handle_ptr_arith): Ditto.
	fold_gimple_assign): Ditto.
	* value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
	* tree-ssa-propagate.c (stmt_makes_single_load,
	substitute_and_fold): Ditto.
	* tree-ssa-loop-niter.c (chain_of_csts_start): Exclude memory loads.
	(get_val_for): Assert that the statement is an assignment.
	(derive_constant_upper_bound_assign,
	expand_simple_operations): Use gimple_assign_rhs_code.
	* tree-ssa-loop-manip.c (create_iv, ip_normal_pos,
	standard_iv_increment_position, determine_exit_conditions,
	tree_transform_and_unroll_loop): Tuplify.
	* tree-scalar-evolution.c (interpret_expr): Fail for chrecs.
	(interpret_gimple_assign, follow_ssa_edge_in_rhs): Use
	gimple_assign_rhs_code.
	* tree-gimple.c (gimple_assign_rhs_code): New function.
	* tree-gimple.h (gimple_assign_rhs_code): Declare.
	* tree-ssa-loop-ivopts.c (single_dom_exit): Enable.
	* gimple-dummy.c (compute_data_dependences_for_loop, dump_ddrs,
	free_data_refs, free_dependence_relations,
	gimple_duplicate_loop_to_header_edge, tree_ssa_prefetch_arrays,
	estimated_loop_iterations_int): Removed.
	* tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Tuplify.
	* predict.c, tree-data-ref.c, tree-ssa-loop-prefetch.c: Tuplify.
	* tree-data-ref.h (struct data_reference, struct rdg_vertex): Change
	the type of stmt to gimple.
	(get_references_in_stmt, create_data_ref, rdg_vertex_for_stmt,
	stores_from_loop, remove_similar_memory_refs,
	have_similar_memory_accesses): Declaration changed.
	* gimple-iterator.c (gsi_insert_seq_on_edge_immediate): New.
	* gimple-pretty-print.c (dump_gimple_assign): Dump nontemporal
	move.  Use gimple_assign_rhs_code.
	(dump_unary_rhs, dump_binary_rhs): Use gimple_assign_rhs_code.
	* gimplify.c (gimplify_modify_expr): Set lhs of the assignment to
	the new SSA name.
	* tree-ssa-coalesce.c (build_ssa_conflict_graph,
	create_outofssa_var_map): Use gimple_assign_copy_p.
	* tree-predcom.c (mark_virtual_ops_for_renaming): Enable.
	* tree-inline.c (estimate_num_insns): Use gimple_assign_rhs_code.
	* tree-flow.h (mark_virtual_ops_for_renaming): Declaration changed.
	* gimple.h (struct gimple_statement_base): Change unused_4 flag
	to nontemporal_move flag.
	(gimple_assign_nontemporal_move_p, gimple_assign_set_nontemporal_move):
	New functions.
	(gsi_insert_seq_on_edge_immediate): Declare.
	(gimple_assign_rhs2): Return NULL if the statement does not have two
	operands.
	(gimple_assign_subcode): Removed.
	* tree-cfg.c (verify_types_in_gimple_assign): Use
	gimple_assign_rhs_code.
	(gimple_lv_adjust_loop_header_phi, gimple_lv_add_condition_to_bb):
	Tuplify.
	(gimple_cfg_hooks): Enable lv_add_condition_to_bb and
	lv_adjust_loop_header_phi hooks.
	* passes.c (init_optimization_passes): Enable pass_profile,
	pass_check_data_deps and pass_loop_prefetch.

2008-03-11  Diego Novillo <dnovillo@google.com>

	* tree-ssa-operands.h: Added declaration of add_to_addressable_set.
	* tree-ssa-operands.h (add_to_addressable_set): New function.
	(gimple_add_to_addresses_taken): Moved most of the logic to
	add_addressable_set.
	* tree-ssa-structalias.c (update_alias_info): Record the variables
	whose address is taken inside a phi node.

2008-03-11  Aldy Hernandez  <aldyh@redhat.com>

	* tree-phinodes.c (allocate_phi_node): Update for tuples.
	* gimplify.c (gimplify_function_tree): Dump memory stats.
	* gimple.c:  Declare gimple_alloc_counts, gimple_alloc_sizes,
	and gimple_alloc_kind_names.
	(gimple_alloc): Gather statistics for tuples.
	(gimple_build_asm_1): Same.
	(gimple_seq_alloc): Same.
	(dump_gimple_statistics): New.
	* gimple.h: Define gimple_alloc_kind.
	(gimple_alloc_kind): New.
	(dump_gimple_statistics): Protoize.
	* tree-ssa-copy.c (replace_exp_1): Mark for_propagation as unused
	(merged from mainline).

2008-03-11  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @133081.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-06  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @132948

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-03-06  Diego Novillo  <dnovillo@google.com>

	* config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot):
	Call walk_gimple_op.
	* tree-complex.c (expand_complex_div_wide): Call
	split_block with STMT.

2008-03-06  Diego Novillo  <dnovillo@google.com>

	* gimple.h (struct gimple_statement_base): Rename field
	'locus' to 'location'.  Update all users.
	(gimple_location): Rename from gimple_locus.  Update all
	users.
	(gimple_set_location): Rename from gimple_set_locus.
	Update all users.
	(gimple_has_location): Rename from gimple_location_empty_p.
	Change sign of return value.  Update all users.
	* gimplify.c (tree_annotate_all_with_location): Rename
	from tree_annotate_all_with_locus.
	(annotate_all_with_location): Rename from
	annotate_all_with_locus.

2008-03-05  Diego Novillo  <dnovillo@google.com>

	* gimple.c (gimple_set_lhs): Remove return keywords.

2008-03-05  David Daney  <ddaney@avtrex.com>

	* builtins.c (expand_builtin___clear_cache): Disable call to
	validate_arglist.
	* config/mips/mips.c (mips_gimplify_va_arg_expr): Tuplify.

2008-03-05  Bill Maddox  <maddox@google.com>

	* tree-ssa-ccp.c (dump_lattice_value, debug_lattice_value):
	Re-enable functions #if'd out.
	(test_default_value, likely_value, surely_varying_stmt_p,
	ccp_initialize, ccp_visit_phi_node, ccp_fold, evaluate_stmt,
	visit_assignment, visit_cond_stmt, ccp_visit_stmt):
	Convert to tuples.
	(fold_gimple_call):  Don't trip over call that simplifies to
	another call, not a constant.
	* tree-ssa-propagate.c (ssa_prop_init): Initialize in-worklist
	flag for phi nodes as well as statements.
	(valid_gimple_expression_p): Add fixme comment to remove this.
	function.  It currently has static uses, but asserts when called.
	(stmt_makes_single_load, stmt_makes_single_store):
	Convert to tuples
	(replace_phi_args_in): Convert to tuples.  Fix typo in comment.
	* gimple.c (gimple_copy_no_def_use, gimple_get_lhs,
	gimple_set_lhs): New function.
	* gimple.h (gimple_copy_no_def_use, gimple_get_lhs,
	gimple_set_lhs): Declare new function.
	* tree-cfg.c (replace_uses_by): Add comment regarding empty
	operands.
	* passes.c (init_optimization_passes): Enable pass_ccp and
	pass_store_ccp.
	
2008-03-05  David Daney  <ddaney@avtrex.com>

	* tree-phinodes.c (allocate_phi_node): Fix syntax errors from
	previous commit.

2008-03-05  Rafael Espíndola  <espindola@google.com>

	* tree-phinodes.c (allocate_phi_node): free free_phinodes[bucket]
	if empty.

2008-03-05  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc/2008-03/msg00256.html

	* fold-const.c (tree_binary_nonnegative_warnv_p): Fix
	invalid C90 declaration.
	(tree_single_nonnegative_warnv_p): Likewise.
	* gimplify.c (gimplify_bind_expr): Likewise.
	(gimplify_return_expr): Likewise.

2008-03-04  Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-loop-niter.c, tree-scalar-evolution.c: Tuplified.
	* tree-ssa-loop-manip.c (split_loop_exit_edge): Ditto.
	* tree-chrec.c (chrec_fold_plus, chrec_apply, chrec_convert_1,
	convert_affine_scev, chrec_convert_rhs, chrec_convert,
	chrec_convert_aggressive): Pass statements as gimple.
	* tree-scalar-evolution.h (get_loop_exit_condition, simple_iv):
	Type changed.
	* tree-chrec.h (chrec_convert, chrec_convert_rhs): Ditto.
	* tree-ssa-loop-ivopts.c (abnormal_ssa_name_p,
	idx_contains_abnormal_ssa_name_p, contains_abnormal_ssa_name_p,
	expr_invariant_in_loop_p, tree_int_cst_sign_bit): Enabled.
	* gimple-dummy.c (chrec_dont_know, chrec_known, chrec_not_analyzed_yet,
	analyze_scalar_evolution, chrec_contains_symbols_defined_in_loop,
	estimate_numbers_of_iterations, expr_invariant_in_loop_p,
	free_numbers_of_iterations_estimates,
	free_numbers_of_iterations_estimates_loop, get_loop_exit_condition,
	instantiate_parameters, nowrap_type_p. scev_const_prop. scev_finalize,
	scev_initialize, scev_probably_wraps_p, scev_reset,
	tree_int_cst_sign_bit, number_of_iterations_exit, loop_niter_by_eval,
	substitute_in_loop_info): Removed.
	* tree-ssa-loop.c (tree_loop_optimizer_init): Merged into...
	(tree_ssa_loop_init): ... here.  Enable scev_initialize call.
	(tree_ssa_loop_done): Enable scev finalization.
	* gimple-iterator.c (gsi_insert_seq_nodes_before): Allow inserting
	at the end of basic block.
	(gsi_for_stmt): Handle phi nodes.
	* cfgloop.h (struct nb_iter_bound): Change type of stmt field to gimple.
	* tree-flow.h (scev_probably_wraps_p, convert_affine_scev,
	stmt_dominates_stmt_p): Types changed.
	* Makefile.in (gt-tree-scalar-evolution.h): Enable.
	* gimple.c (extract_ops_from_tree): Export.
	(gimple_copy): Do not share bitmaps.
	* gimple.h (extract_ops_from_tree): Declare.
	(gimple_call_set_lhs): Allow lhs to be NULL.
	* tree-cfg.c (add_phi_args_after_copy_edge,
	add_phi_args_after_copy_bb): Tuplify.
	* passes.c (init_optimization_passes): Enable pass_ch, pass_scev_cprop.

2008-03-04  Oleg Ryjkov  <olegr@google.com>

	* tree-ssa-dse.c (execute_simple_dse): Commented out.
	* passes.c (init_optimization_passes): Disabling pass_simple_dse.

2008-03-04  Bill Maddox  <maddox@google.com>

	* tree-cfg.c (remove_useless_stmts_1):
	Correctly distinguish try-catch and try-finally.
	
2008-03-04  Oleg Ryjkov  <olegr@google.com>

	* tree-ssa-dse.c (execute_simple_dse): Tuplified.
	* gimplify.c (gimplify_return_expr): Copy the NO_WARNING flag
	to the newly created expr from the tree.
	* tree-cfg.c (gimplify_build1): Tuplified.
	* passes.c (init_optimization_passes): Enabled
	pass_warn_function_return, pass_update_address_taken,
	pass_simple_dse and pass_build_alias passes.

2008-03-04  Rafael Espíndola  <espindola@google.com>

	* fold-const.c (tree_simple_nonnegative_warnv_p): New.
	(tree_unary_nonnegative_warnv_p): New.
	(tree_binary_nonnegative_warnv_p): New.
	(tree_single_nonnegative_warnv_p): New.
	(tree_invalid_nonnegative_warnv_p): New.
	(tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.

2008-03-04  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (walk_gimple_seq): Do not set wi->gsi.
	(walk_gimple_stmt): Set wi->gsi.
	* tree-cfg.c (verify_stmt): Use walk_gimple_op instead of
	walk_gimple_stmt.
	(verify_stmts): Same.

2008-03-04  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-03/msg00219.html

	* expr.c (expand_expr_real): Call lookup_expr_eh_region.
	* tree-eh.c (lookup_stmt_eh_region_fn):
	(lookup_stmt_eh_region): Fix comment.
	(lookup_expr_eh_region): Handle missing cfun and missing
	EH table.
	(record_in_finally_tree): Fix comment.
	(collect_finally_tree_1): Remove handler for
	GIMPLE_SWITCH.
	(maybe_record_in_goto_queue): Remove local variable
	NEW_IS_LABEL.
	Record GIMPLE_GOTOs instead of their label.
	(verify_norecord_switch_expr): Retrieve the CASE_LABEL
	from the case label expression.
	(do_return_redirection): Change sign of assertion.
	(lower_try_finally_onedest): Assert that
	TF->GOTO_QUEUE[0] contains a GIMPLE statement.
	(lower_try_finally_copy): Assert that Q contains a GIMPLE
	statement.
	(lower_try_finally_switch): Build a new GIMPLE label for
	CONT_STMT.
	(mark_eh_edge): Tuplify.
	(verify_eh_edges): Tuplify.
	(tree_can_throw_external): Remove unused function.
	(optimize_double_finally): Remove #if 0.
	* gimple-pretty-print.c (GIMPLE_NIY): Tidy.
	(dump_gimple_resx): Fix format string for
	dump_gimple_fmt.
	* gimplify.c (gimplify_cleanup_point_expr): Initialize
	BODY_SEQUENCE.
	* calls.c (emit_call_1): Remove ATTRIBUTE_UNUSED markers.
	* cfgexpand.c (gimple_to_tree) <GIMPLE_NOP>: Assign new
	expression to T.
	<GIMPLE_RESX>: Handle.
	Always assign the value from lookup_stmt_eh_region to
	ANN->RN.
	* tree-cfg.c (start_recording_case_labels):
	(recording_case_labels_p): Re-enable.
	(get_cases_for_edge): Likewise.
	(gimple_verify_flow_info): Re-enable call to
	verify_eh_edges.
	(gimple_redirect_edge_and_branch): Re-enable handling of
	GIMPLE_SWITCH.
	(gimple_block_ends_with_call_p): Tuplify.
	(struct gimple_cfg_hooks): Enable block_ends_with_call_p
	callback.

2008-03-04  Rafael Espíndola  <espindola@google.com>

	* fold-const.c (tree_unary_nonzero_warnv_p): New.
	(tree_binary_nonzero_warnv_p): New.
	(tree_single_nonzero_warnv_p): New.
	(tree_expr_nonzero_warnv_p): Redefine using the new functions.

2008-03-04  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (walk_gimple_op): Update comment.
	(walk_gimple_stmt): Same.

2008-03-03  Aldy Hernandez  <aldyh@redhat.com>

	* cgraphbuild.c (build_cgraph_edges): Use walk_gimple_op instead of
	walk_gimple_stmt.
	* tree-ssa-alias-warnings.c (find_references_in_function): Same.
	* tree-ssa-ccp.c (fold_stmt): Change walk_gimple_stmt call to
	walk_gimple_op.
	* tree-nrv.c (tree_nrv): Same.
	* tree-ssa-alias.c (count_uses_and_derefs): Same.
	* cfgexpand.c (discover_nonconstant_array_refs_r): Same.
	* tree-nested.c (convert_nonlocal_reference_stmt): Make first
	argument a GSI.
	(convert_local_reference_op): Same.
	(convert_nl_goto_reference): Same.
	(convert_tramp_reference_stmt): Same.
	(convert_gimple_call): Same.
	* tree-inline.c (inline_forbidden_p_stmt): Same.
	* tree-ssa.c (execute_early_warn_uninitialized): Change
	walk_gimple_stmt call to walk_gimple_op.
	* gimple.c (walk_gimple_seq): Pass GSI to walk_gimple_stmt.
	(walk_gimple_stmt): Move operand walking code to...
	(walk_gimple_op): ...here.
	(walk_gimple_stmt): First argument is now a GSI.
	* gimple.h: Change walk_stmt_fn argument to a GSI.
	(walk_gimple_stmt): Make first argument is a GSI.
	(walk_gimple_op): New prototype.
	* tree-cfg.c (verify_stmt): Change argument to a GSI.  Adjust
	accordingly.

2008-02-29  Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-alias.c (is_escape_site): Detect pure/const functions
	correctly.

2008-02-28  Zdenek Dvorak  <ook@ucw.cz>

	* tree-ssa-loop-im.c: Tuplify.
	* tree-ssa-loop-manip.c (add_exit_phis_edge, find_uses_to_rename_stmt,
	find_uses_to_rename_bb, check_loop_closed_ssa_use,
	check_loop_closed_ssa_stmt, verify_loop_closed_ssa): Ditto.
	* gimple-dummy.c (rewrite_into_loop_closed_ssa, tree_ssa_lim,
	verify_loop_closed_ssa, replace_exp): Removed.
	* tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_done): Comment
	out scev initialization and finalization.
	* gimple-iterator.c (gsi_remove): Rename remove_eh_info to
	remove_permanently.  Do not free operands if remove_permanently
	is false.
	(gimple_find_edge_insert_loc): Use gsi_last_bb.
	* tree-eh.c (operation_could_trap_p): Factored out of ...
	(tree_could_trap_p): ... here.
	* tree-ssa-copy.c (replace_exp): Enable.
	* tree-flow.h (movement_possibility): Declaration changed.
	(operation_could_trap_p): Declare.
	* Makefile.in (tree-ssa-loop-im.o): Add pointer-set.h dependency.
	(gimple.o): Add FLAGS_H dependency.
	* gimple.c: Include flags.h.
	(gimple_could_trap_p): New function.
	* gimple.h (gimple_could_trap_p): Declare.
	* tree-cfg.c (replace_uses_by): Check that op is not null.
	* passes.c (init_optimization_passes): Enable pass_lim.

2008-02-28  Rafael Espíndola  <espindola@google.com>

	* tree-outof-ssa.c (insert_backedge_copies): Don't build
	uninitialized assignment.

2008-02-28  Rafael Espíndola  <espindola@google.com>

	* tree-dfa.c (dump_dfa_stats): cast dfa_stats.max_num_phi_args to long.

2008-02-26  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-copyrename.c (rename_ssa_copies): Do not mix
	declarations with code.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
	* tree-dfa.c (dump_dfa_stats): Use %ld for
	dfa_stats.max_num_phi_args.

2008-02-26  Bill Maddox  <maddox@google.com>
	
	* tree-ssa-ccp.c (maybe_fold_stmt_addition):
	Reinstated this function for tuples as-is.
	(valid_gimple_rhs_p): New function.  Mostly lifted from
	valid_gimple_epxression_p, which is likely obsolete.
	(fold_stmt_r): Reinstated commented-out cases for
	tuples. Replaced call to obsolete function set_rhs.
	(get_maxval_strlen): Convert to tuples.
	(ccp_fold_builtin): Partial conversion to tuples.
	(fold_gimple_assign): New function.
	(fold_gimple_cond): New function.
	(fold_gimple_call): New function.
	(fold_stmt): Convert to tuples.
	(fold_stmt_inplace): Convert to tuples.
	* tree-ssa-propagate.c (substitute_and_fold):
	Update call to fold_stmt for revised argument signature.
	* gimple-dummy.c (fold_stmt): Removed dummy definition.
	* gimplify.c (gimplify_call_expr): Removed obsolete
	manipulation of TREE_NOTHROW flag.
	* cfgexpand.c (gimple_to_tree): Set nothrow flag
	of call expression based on call statement flags.
	Handle GIMPLE_NOP statement.
	* tree-flow.h (notice_special_calls, fold_stmt):
	Update prototypes for tuples.
	* gimple.c (gimple_cond_set_condition_from_tree):
	New function.
	(gimple_seq_has_side_effects): New function.
	* gimple.h (gimple_cond_set_condition_from_tree,
	gimple_seq_has_side_effects): New prototypes.
	(gimple_call_nothrow_p): New function.
	(gsi_stmt_ptr): Add comment regarding usage of this
	function vs. gsi_replace.
	* tree-cfg.c (struct rus_data): Convert to tuples.
	(remove_useless_stmts_1, remove_useless_stmts_warn_notreached,
	remove_useless_stmts_cond, remove_useless_stmts_tf,
	remove_useless_stmts_tc, remove_useless_stmts_goto,
	remove_useless_stmts_label, notice_special_calls,
	remove_useless_stmts): Convert to tuples.
	(update_call_expr_flags): Removed.
	* passes.c (init_optimization_passes): Enable
	pass_remove_useless_stmts.
	
2008-02-25  Bill Maddox  <maddox@google.com>

	* tree-into-ssa.c (rewrite_initialize_block):
	Avoid declaration following statement in block.
	* tree-nrv.c (tree_nrv):
	Avoid declaration following statement in block.
	* tree-eh.c (collect_finally_tree): Fix typo in comment.
	Avoid cast to union type.
	(replace_goto_queue_cond_clause, replace_goto_queue_1,
	maybe_record_in_goto_queue, verify_norecord_switch_expr,
	lower_try_finally_fallthru_label): Avoid cast to union type.
	* fortran/Make-lang.in: Add -Wno-missing-format-attribute
	to fortran-warn options to avoid conflict with -Wno-format.
	* gimplify.c (gimplify_switch_expr):  Change assignment
	to initialiation.
	(gimplify_case_label_expr): Avoid declaration following
	statement in block.
	* tree-ssa-coalesce.c (create_outofssa_var_map): Avoid
	declaration following statement in block.
	* tree-ssa.c (ssa_redirect_edge, flush_pending_stmts):
	Avoid declaration following statements in block.
	* Makefile.in: Add -Wno-missing-format-attribute
	to builtins.o-warn and expr.o-warn options to avoid conflict
	with -Wno-format.  Removed fortran/*-warn options, -Wno-format
	and -Wno-uninitialized, which belong in fortran/Make-lang.in,
	and are applied to all fortran files there.

2008-02-25  Oleg Ryjkov  <olegr@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01236.html

	* tree-ssa-copyrename.c: Include gimple.h
	Tuplify.
	* tree-ssa.c (warn_uninit): Pass &LOCUS to warning().
	* passes.c (init_optimization_passes): Enable
	pass_early_warn_uninitialized, pass_rebuild_cgraph_edges
	and pass_early_inline.

2008-02-25  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (tree-ssa-copyrename.o): Add dependency on
	gimple.h.

2008-02-25  Diego Novillo  <dnovillo@google.com>

	* tree-cfgcleanup.c (tree_forwarder_block_p): Revert
	previous change.

2008-02-25  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01217.html

	* tree-ssa-alias-warnings.c: Tuplify.
	* cgraphunit.c (cgraph_process_new_functions): Remove
	calls to gimple_unreachable.
	(cgraph_expand_function): Likewise.
	* omp-low.c (execute_expand_omp): Return 0 after call to
	gimple_unreachable.
	* tree-scalar-evolution.c (scev_const_prop): Likewise.
	(execute_lower_omp): Likewise.
	* tree-ssa-dse.c (execute_simple_dse): Likewise.
	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
	(eliminate_degenerate_phis): Likewise.
	* tree-ssa-propagate.c (get_rhs): Likewise.
	(valid_gimple_expression_p): Likewise.
	(set_rhs): Likewise.
	(fold_predicate_in): Likewise.
	* tree-nrv.c (execute_return_slot_opt): Likewise.
	* predict.c (tree_estimate_probability): Likewise.
	* tree-parloops.c (parallelize_loops): Likewise.
	* tree-if-conv.c (main_tree_if_conversion): Likewise.
	* tree-ssa-phiopt.c (tree_ssa_phiopt): Likewise.
	(tree_ssa_cs_elim): Likewise.
	* tree-sra.c (tree_sra): Likewise.
	(tree_sra_early): Likewise.
	* tree-predcom.c (tree_predictive_commoning): Likewise.
	* tree-ssa-copy.c (execute_copy_prop): Likewise.
	* lambda-code.c (gcc_loop_to_lambda_loop): Likewise.
	(perfect_nest_p): Likewise.
	(can_convert_to_perfect_nest): Likewise.
	(perfect_nestify): Likewise.
	* tree-optimize.c (execute_fixup_cfg): Likewise.
	* tree-object-size.c (compute_object_sizes): Likewise.
	* tree-cfg.c (remove_useless_stmts): Likewise.
	(gimple_duplicate_sese_tail): Likewise.
	(move_sese_region_to_fn): Likewise.
	(gimple_purge_dead_abnormal_call_edges): Likewise.
	(execute_warn_function_return): Likewise.
	* value-prof.c (gimple_histogram_value): Remove calls to
	gimple_unreachable.
	(gimple_stringop_fixed_value): Likewise.
	* tree-flow-inline.h (op_iter_next_use): Likewise.
	* tree-dfa.c (dump_variable): Likewise.
	* tree-ssa-copy.c (may_propagate_copy): Likewise.
	(may_propagate_copy_into_asm): Likewise.
	(merge_alias_info): Likewise.
	(replace_exp_1): Likewise.
	* tree-ssa.c (delete_tree_ssa): Likewise.
	* tree-cfg.c (make_edges): Likewise.
	(remove_useless_stmts): Likewise.
	(gimple_duplicate_sese_tail): Likewise.
	(move_sese_region_to_fn): Likewise.
	(gimple_purge_dead_abnormal_call_edges): Likewise.
	(execute_warn_function_return): Likewise.
	* passes.c (finish_optimization_passes): Likewise.
	(init_optimization_passes): Likewise.
	* tree-ssa-operands.c (add_call_clobber_ops): Likewise.
	* tree-eh.c (lookup_expr_eh_region): New.
	(tree_can_throw_external): Return false after call to
	gimple_unreachable.
	(maybe_clean_or_replace_eh_stmt): Re-enable.
	Call stmt_could_throw_p.
	* expr.c (expand_expr_real): Call lookup_expr_eh_region.
	* profile.c: Tuplify.
	* calls.c: Include tree-flow.h.
	(emit_call_1): Call lookup_expr_eh_region.
	(expand_call): Likewise.
	* cfgexpand.c (gimple_to_tree): Call SET_EXPR_LOCATION on
	generated expression tree T.
	Set EH region number on T's annotation.
	* common.opt (fgimple-conversion=): Add RejectNegative
	and Joined attributes.
	* tree-inline.c (unsave_r): Abort if *TP is a
	STATEMENT_LIST.
	(unsave_expr_now): Re-enable.
	* tree-flow.h (struct tree_ann_common_d): Add field RN.
	* Makefile.in (builtins.o-warn): Add -Wno-format.
	(expr.o-warn): Likewise.
	(fortran/check.o-warn): Likewise.
	(fortran/interface.o-warn): Likewise.
	(fortran/resolve.o-warn): Likewise.
	(fortran/simplify.o-warn): Likewise.
	(fortran/target-memory.o-warn): Likewise.
	(calls.o): Add dependency on tree-flow.h
	* gimple.c (gimple_build_asm_1): Call ggc_alloc_string to
	copy STRING.
	* gimple.h (gimple_filename): New.
	(gimple_lineno): New.
	* passes.c (init_optimization_passes): Disable
	pass_remove_useless_stmts pass_mudflap_1,
	pass_warn_function_return and pass_lower_omp.
	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Tuplify.
	(rs6000_alloc_sdmode_stack_slot): Likewise.
	* tree-cfgcleanup.c (tree_forwarder_block_p): Fix test
	for PHI_WANTED.

2008-02-25  Rafael Espíndola  <espindola@google.com>

	* tree-cfgcleanup.c (tree_forwarder_block_p): fix thinko.

2008-02-24  Rafael Espíndola  <espindola@google.com>

	* gimple-iterator.c (gsi_split_seq_before): Don't abort if at the
	beginning.

2008-02-23  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01025.html

	* gimplify.c (gimplify_one_sizepos): Call gimplify_expr with
	STMT_P.

2008-02-22  Zdenek Dvorak  <ook@ucw.cz>

	* gimple.c (gimple_assign_copy_p): Do not consider unary operations
	to be copies.

2008-02-22  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (fortran/parse.o-warn,
	fortran/simplify.o-warn): New.

2008-02-22  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00961.html

	Revert

	2008-02-20  Zdenek Dvorak  <ook@ucw.cz>

		* tree-tailcall.c: Tuplify.
		* gimplify.c (force_gimple_operand): Remove ATTRIBUTE_UNUSED.
		* gimple.c (gimple_assign_copy_p): Do not
		consider unary operations to be copies.
		(copy_or_nop_cast_stmt_rhs): New.
		* gimple.h (copy_or_nop_cast_stmt_rhs): Declare.

2008-02-21  Rafael Espíndola  <espindola@google.com>

	* gimple.h (gimple_cond_true_p): Define.
	(gimple_cond_false_p): Define.
	(gimple_cond_single_var_p): Define.

2008-02-21  Rafael Espíndola  <espindola@google.com>

	* tree-tailcall.c (adjust_accumulator_values): Check that a phi was
	found.

2008-02-21  Rafael Espíndola  <espindola@google.com>

	* tree-tailcall.c (adjust_accumulator_values): Initialize phi.

2008-02-20  Zdenek Dvorak  <ook@ucw.cz>

	* tree-tailcall.c: Tuplify.
	* gimplify.c (force_gimple_operand): Remove ATTRIBUTE_UNUSED.
	* gimple.c (gimple_assign_copy_p): Do not consider unary operations
	to be copies.
	(copy_or_nop_cast_stmt_rhs): New.
	* gimple.h (copy_or_nop_cast_stmt_rhs): Declare.

2008-02-20  Oleg Ryjkov  <olegr@google.com>

	* gimplify.c (gimplify_expr): Save locus into the right
	sequence.

2008-02-20  Rafael Espíndola  <espindola@google.com>

	* passes.c (init_optimization_passes): Enable pass_mark_used_blocks
	and pass_cleanup_cfg_post_optimizing.
	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): call cleanup_tree_cfg.

2008-02-20  Rafael Espíndola  <espindola@google.com>

	* passes.c (init_optimization_passes):  Enable pass_nrv.
	* tree-nrv.c (finalize_nrv_r): data is now a walk_stmt_info.
	(tree_nrv): port to gimple.

2008-02-19  Oleg Ryjkov  <olegr@google.com>

	* gimple-pretty-print.c: Introduce support for TDF_RAW
	flag.
	(dump_gimple_fmt): New function.
	(dump_gimple_assign, dump_gimple_return): Update to print
	RAW gimple.
	(dump_gimple_call_args): New function.
	(dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
	dump_gimple_label, dump_gimple_bind, dump_gimple_try):
	Update to print RAW gimple.
	(dump_gimple_catch, dump_gimple_eh_filter,
	dump_gimple_resx): New functions.
	(dump_gimple_omp_for, dump_gimple_asm, dump_gimple_phi):
	Update to print RAW gimple.
	(dump_gimple_omp_parallel, dump_gimple_omp_atomic_load,
	dump_gimple_omp_atomic_store): New, code moved from 
	dump_gimple_stmt, then added support to print RAW gimple.
	(gimple_dump_stmt): Some code refactored into helper
	subroutines.
	* tree-cfg.c(dump_function_to_file): Print RAW gimple when
	TDF_RAW is set.

2008-02-19  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00793.html

	* tree-complex.c (expand_complex_div_wide): Call gsi_bb.
	* tree.h (std_gimplify_va_arg_expr): Change gimple_seq
	arguments to gimple_seq *.
	Update all users.
	(gimplify_parameters): Change return type to gimple_seq.
	Update all users.
	* target.h (struct gcc_target)<gimplify_va_arg_expr>:
	Change gimple_seq arguments to gimple_seq *.
	Update all users.
	* tree-phinodes.c (free_phinodes): Convert to VEC.
	Update all users.
	* omp-low.c (lower_rec_input_clauses): Change gimple_seq
	arguments to gimple_seq *.  Update all users.
	(lower_reduction_clauses): Convert sub_list to
	gimple_seq.
	(lower_regimplify): Convert PRE to gimple_seq.
	(lower_regimplify): Call gimple_seq_insert_before instead
	of tsi_link_before.
	* tree-gimple.h (get_initialized_tmp_var,
	get_formal_tmp_var, gimplify_expr, gimplify_type_sizes,
	gimplify_one_sizepos, gimplify_stmt, gimplify_and_add,
	gimplify_va_arg_expr): Change gimple_seq arguments to
	gimple_seq *.  Update all users.
	* gimple-iterator.c: Include value-prof.h.
	(gsi_link_seq_before): Remove.  Update all users.
	(gsi_link_seq_after): Remove.  Update all users.
	(gsi_link_after): Remove.  Update all users.
	(gsi_link_before): Remove.  Update all users.
	(update_bb_for_stmts): New.
	(gsi_insert_seq_nodes_before): New.
	(gsi_insert_seq_nodes_after): New.
	(gsi_insert_seq_before): Re-write.  Call
	gsi_insert_seq_nodes_before.
	(gsi_insert_seq_after): Re-write.  Call
	gsi_insert_seq_nodes_after.
	(gsi_replace): Re-enable EH updating.
	(update_modified_stmt): Move earlier in the file.
	(gsi_insert_after): Re-write.  Call
	gsi_insert_seq_nodes_after.
	(gsi_insert_before): Re-write.  Call
	gsi_insert_seq_nodes_before.
	(gsi_remove): Move from gimple.h.  Re-write.
	* langhooks.h (struct lang_hooks): Change gimple_seq
	arguments for gimplify_expr to gimple_seq *.
	Update all users.
	* coretypes.h (struct gimple_seq_d): Rename from struct
	gimple_sequence.  Update all users.
	(struct gimple_seq_node_d): New.
	(gimple_seq_node): New.
	(const_gimple_seq_node): New.
	* tree-flow.h (force_gimple_operand): Change gimple_seq
	argument to gimple_seq *.  Update all users.
	* c-common.h (c_gimplify_expr): Change gimple_seq
	argument to gimple_seq *.  Update all users.
	* Makefile.in (build):
	* gimple.c (gimple_seq_cache): New.
	(gimple_seq_alloc): Take sequences from gimple_seq_cache,
	if possible.
	(gimple_seq_free): New.
	(gimple_seq_add_stmt): Rename from gimple_seq_add.
	Change gimple_seq argument to gimple_seq *.  Update all users.
	(gimple_seq_add_seq): Rename from gimple_seq_append.
	Update all users.
	(gimple_remove): Remove.  Update all users.
	(gimple_seq_reverse): Remove unused function.
	(gimple_set_bb): Only update block-to-labels map if
	CFUN->CFG exists.
	* gimple.h (struct gimple_seq_node_d): New.
	(struct gimple_seq_d): Change fields 'first' and 'last'
	to type gimple_seq_node.  Update all users.
	Add field 'next_free'.
	(gimple_seq_first): Change return type to
	gimple_seq_node.  Update all users.
	(gimple_seq_first_stmt): New.
	(gimple_seq_last): Change return type to gimple_seq_node.
	Update all users.
	(gimple_seq_last_stmt): New.
	(gimple_seq_set_first): Change second argument to type
	gimple_seq_node.  Update all users.
	(gimple_seq_set_last): Change second argument to type
	gimple_seq_node.  Update all users.
	(gimple_seq_init): Remove.  Update all users.
	(struct gimple_statement_base): Remove field 'next' and
	'prev'.  Update all users.
	(struct gimple_statement_omp): Change fields of type
	struct gimple_sequence to type gimple_seq.  Update all
	users.
	(struct gimple_statement_bind): Likewise.
	(struct gimple_statement_catch): Likewise.
	(struct gimple_statement_eh_filter): Likewise.
	(struct gimple_statement_try): Likewise.
	(struct gimple_statement_wce): Likewise.
	(struct gimple_statement_omp_for): Likewise.
	(gimple_set_prev): Remove.  Update all users.
	(gimple_set_next): Remove.  Update all users.
	(gimple_next): Remove.  Update all users.
	(gimple_prev): Remove.  Update all users.
	(gimple_seq_bb): New.
	(gimple_catch_handler_ptr): New.
	(gimple_stmt_iterator): Remove field 'stmt'.
	Add field 'ptr'.  Update all users.
	(gsi_remove): Move to gimple-iterator.c
	* tree-cfg.c (pass_build_cfg): Re-enable PROP_gimple_leh.
	* Makefile.in (builtins.o-warn, expr.o-warn, dse.o-warn,
	ebitmap.o-warn, lower-subreg.o-warn, tree-chrec.o-warn):
	Change -Wno-error to -Wno-uninitialized.

2008-02-19  Rafael Espíndola  <espindola@google.com>

	* tree-eh.c (collect_finally_tree): handle GIMPLE_SWITCH.

2008-02-19  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.h (gimple_cond_invert): Remove prototype.
	(update_stmt_if_modified): Fix typo in comment.
	* gimple.c (walk_gimple_asm): Fix typo in comment.

2008-02-13  Bill Maddox  <maddox@google.com>

	* tree-inline.c (estimate_operator_cost): 
	Removed operators superseded by tuplified statement forms.
	Small cosmetic reordering of a few switch cases.

2008-02-13  Oleg Ryjkov  <olegr@google.com>

	* tree.h: New function declaration.
	* gimple-dummy.c (tree_inlinable_function_p): Removed.
	* ipa-inline.c (compute_inline_parameters): Removed
	gcc_unreachable ().
	* calls.c (gimple_alloca_call_p): New function.
	* tree-inline.c (inline_forbidden_p_1): Split in two and removed.
	(inline_forbidden_p_op, inline_forbidden_p_stmt): New functions.
	(inline_forbidden_p): Tuplified.
	(estimate_operator_cost): Added missing cases.
	* passes.c (init_optimization_passes): Enabled pass_inline_parameters,
	pass_ipa_function_and_variable_visibility, pass_ipa_early_inline,
	pass_inline_parameters, pass_rebuild_cgraph_edges passes.

2008-02-13  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00459.html

	* gimple.def (GIMPLE_TRY): Tidy comment.
	* gimple-pretty-print.c (dump_gimple_stmt): Handle TDF_VOPS and
	TDF_MEMSYMS.

2008-02-13  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00455.html

	* tree-complex.c (update_complex_components): Handle
	GIMPLE_CALL and GIMPLE_ASSIGN.
	(expand_complex_libcall): Set SSA_NAME_DEF_STMT on LHS.
	* tree-ssa-operands.c (maybe_add_call_clobbered_vops):
	Rename from get_call_expr_operands.  Update all users.
	Convert to handle GIMPLE_CALL instead of CALL_EXPR.
	(get_modify_stmt_operands): Remove.  Update all users.
	(get_expr_operands): Do not handle CALL_EXPR, COND_EXPR,
	VEC_COND_EXPR, GIMPLE_MODIFY_STMT, BLOCK, EXC_PTR_EXPR
	and FILTER_EXPR.
	(parse_ssa_operands): Call maybe_add_call_clobbered_vops
	after parsing operands if STMT is a GIMPLE_CALL.

2008-02-12  Zdenek Dvorak  <ook@ucw.cz>
	    Bill Maddox  <maddox@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00429.html

	* tree-inline.h (estimate_num_insns_fn): Declare.
	* cgraphunit.c (cgraph_process_new_functions):
	Use estimate_num_insns_fn.
	* ipa-inline.c (compute_inline_parameters): Ditto.
	* gimple-dummy.c (estimate_move_cost, estimate_num_insns):
	Removed.
	* tree-inline.c (struct eni_data, estimate_num_insns_1):
	Removed.
	(estimate_num_insns): Rewritten.
	(operation_cost, estimate_num_insns_fn): New functions.
	* gimple.c (gimple_copy): Unshare operands.  Update
	operand caches.
	* gimple.h (gimple_set_no_warning): New.
	(gimple_cond_set_true_label, gimple_cond_set_false_label):
	Allow setting the label to NULL.
	* tree-ssa-operands.c (copy_virtual_operands): Handle statements
	without virtual operands.

2008-02-12  Zdenek Dvorak  <ook@ucw.cz>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00429.html

	* tree-into-ssa.c (update_ssa): Remove ATTRIBUTE_UNUSED.
	* tree-ssa-loop-ch.c: Tuplified.
	* gimple-iterator.c (gsi_commit_one_edge_insert): Ditto.
	* tree-cfg.c (gimple_redirect_edge_and_branch,
	gimple_try_redirect_by_replacing_jump, gimple_merge_blocks,
	gimple_block_label, gimple_redirect_edge_and_branch_force,
	gimple_duplicate_bb): Ditto.
	(make_cond_expr_edges): Remove the labels.
	(cleanup_dead_labels): Handle conditions without labels.
	(gimple_make_forwarder_block): Do not reverse the list
	of phi nodes.
	(gimple_duplicate_sese_region): Enable ssa updates.
	(gimple_cfg_hooks): Enable edge redirection and bb duplication.
	* gimple-pretty-print.c (dump_gimple_cond): Do not dump
	branches if labels are null.
	(dump_implicit_edges): Dump implicit GIMPLE_COND edges.

2008-02-12  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00429.html

	* tree-vrp.c (range_includes_zero_p): Partially re-enable.
	(ssa_name_nonnegative_p): Partially re-enable.
	(ssa_name_nonzero_p): Likewise.
	* gimple-dummy.c (ssa_name_nonzero_p): Remove.
	(ssa_name_nonnegative_p): Remove.
	* tree-cfg.c (gimple_split_block): Convert to tuples.

2008-02-12  Aldy Hernandez  <aldyh@redhat.com>

	Merge with mainline @132177

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2008-02-08  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00273.html
	
	* gimplify.c (gimplify_call_expr): Remove code to set
	TREE_SIDE_EFFECTS.
	* gimple.c (gimple_has_side_effects): New.
	* gimple.h (gimple_has_side_effects): Declare.
	* tree-cfg.c (stmt_can_make_abnormal_goto): Call.

2008-02-07  Diego Novillo  <dnovillo@google.com>

	* gimple.h (gimple_call_num_args): Rename from
	gimple_call_nargs.  Update all users.

2008-02-07  Aldy Hernandez  <aldyh@redhat.com>

	* gimplify.c: Remove various FIXMEs that have been resolved.

2008-02-06  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.def: Add GIMPLE_OMP_ATOMIC_{LOAD,STORE} entires.
	* gsstruct.def: Add GSS_OMP_ATOMIC_{LOAD,STORE} entries.
	* gimple-pretty-print.c (dump_gimple_stmt): Add case for
	GIMPLE_OMP_ATOMIC_{LOAD,STORE}.
	* gimplify.c (gimplify_omp_atomic): Enable and convert to tuples.
	* tree.def: Add FIXME notes.
	* gimple.c (gss_for_code): Add cases for
	GIMPLE_OMP_ATOMIC_{LOAD,STORE}.
	(gimple_size): Same.
	(gimple_build_omp_atomic_load): New.
	(gimple_build_omp_atomic_store): New.
	* gimple.h (struct gimple_statement_omp_atomic_{load,store}): New.
	(union gimple_statement_d): Add gimple_omp_atomic_{load,store}.
	(gimple_omp_atomic_store_set_val): New.
	(gimple_omp_atomic_store_val): New.
	(gimple_omp_atomic_load_set_lhs): New.
	(gimple_omp_atomic_load_lhs): New.
	(gimple_omp_atomic_load_set_rhs): New.
	(gimple_omp_atomic_load_rhs): New.
	* tree-cfg.c (verify_types_in_gimple_seq_2): Add cases for
	GIMPLE_OMP_ATOMIC_{LOAD,STORE}.

2008-02-05  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00161.html

	* gimple-iterator.c (gsi_split_seq_after): Change
	argument type to gimple_stmt_iterator.  Update all users.
	(gsi_for_stmt): Return gimple_stmt_iterator.  Update all users.
	(gimple_find_edge_insert_loc): Change GSI argument to
	gimple_stmt_iterator.  Update all users.
	* gimple.c (gimple_seq_deep_copy): Change argument to gimple_seq.
	Update all users.
	* gimple.h (gsi_alloc): Remove.  Update all users.
	(gsi_start): Return gimple_stmt_iterator.  Update all users.
	(gsi_start_bb): Likewise.
	(gsi_last): Likewise.
	(gsi_last_bb): Likewise.
	(gsi_end_p): Change argument to gimple_stmt_iterator.
	Update all users.
	(gsi_one_before_end_p): Likewise.
	(gsi_stmt): Likewise.
	(gsi_bb): Likewise.
	(gsi_seq): Likewise.
	(gsi_split_seq_after): Likewise.
	(gsi_for_stmt): Likewise.
	(gsi_after_labels): Return gimple_stmt_iterator.  Update all users.

2008-02-05  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-pretty-print.c (dump_gimple_stmt): Print clauses for
	GIMPLE_OMP_PARALLEL.
	Handle GIMPLE_OMP_FOR.
	(dump_gimple_omp_for): New.
	* tree-pretty-print.c (dump_omp_clauses): Remove static.
	* diagnostic.h (dump_omp_clauses): Add prototype.
	* gimplify.c (gimplify_omp_for): Convert to tuples and enable.
	(gimplify_omp_workshare): Same.
	(gimplify_expr) [OMP_MASTER, OMP_ORDERED, OMP_CRITICAL]: Same.

2008-02-04  Oleg Ryjkov <olegr@google.com>

	* tree-gimple.c (get_gimple_rhs_class): Handle
	FILTER_EXPR.
	* tree-eh.c (union treemple): Declare.
	Convert to tuples.
	* except.c:
	* except.h (lang_protect_cleanup_actions): Change return
	type to 'gimple'.  Update all users.
	* tree-inline.c (count_insns_seq): New.
	* tree-inline.h (count_insns_seq): Declare.
	* gimple.c (gimple_seq_deep_copy): New.
	* gimple.h (gimple_seq_deep_copy): Declare.
	(gimple_singleton_p): New.
	* passes.c (init_optimization_passes): Enable
	pass_lower_eh.

2008-02-02  Aldy Hernandez  <aldyh@redhat.com>

	* tree.h (OMP_CLAUSE_REDUCTION_GIMPLE_INIT): New.
	(OMP_CLAUSE_REDUCTION_GIMPLE_MERGE): New.
	(struct tree_omp_clause): Add gimple_reduction_{init,merge} fields.
	* gimplify.c (gimplify_scan_omp_clauses): Gimplify reduction
	init/merge fields into separate sequences.
	(gimplify_and_add): Use gimplify_expr directly.
	* omp-low.c (lower_rec_input_clauses): Extract reduction info from
	gimple tuples in structure.
	(lower_reduction_clauses): Same.

2008-02-01  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00036.html

	* tree-complex.c (expand_complex_comparison): Set the RHS
	of the new comparison to boolean_true_node.
	* gimplify.c (gimplify_call_expr): Fix creation of new
	GIMPLE_CALL.  Create the vector of arguments in the same
	order as the original expression.

2008-02-01  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00032.html

	* tree-pas.h (struct tree_opt_pass): Remove field
	WORKS_WITH_TUPLES_P.  Adjust all users.
	* opts.c (decode_options): Force -O0.
	* cfgexpand.c (gimple_to_tree): Handle GIMPLE_RETURN,
	GIMPLE_ASM, GIMPLE_CALL and GIMPLE_SWITCH.
	Show unrecognized tuple when failing.
	(expand_gimple_basic_block): Do not use
	gimple_stmt_iterator to go through the statements in BB.
	Handle GIMPLE_CALL instead of CALL_EXPR.
	(gimple_expand_cfg): Rename from tree_expand_cfg.  Update
	all users.
	Remove PROP_gimple_leh.
	* gimple.c (walk_gimple_seq): Guard against WI == NULL.
	* tree-cfg.c (execute_warn_function_return): Move #if 0
	markers.
	* passes.c (init_optimization_passes): Adjust #if 0
	markers to execute pass_expand.
	Guard more passes under #if 0.

2008-02-01  Rafael Espíndola  <espindola@google.com>

	* passes.c (init_optimization_passes): Enable pass_del_ssa.

	* tree-outof-ssa.c (insert_copy_on_edge): Port to tuples.
	(eliminate_build): Likewise.
	(eliminate_virtual_phis): Likewise.
	(rewrite_trees): Likewise. Remove stmt_ann_t ann.
	(stmt_list): Changed from tree to gimple_seq.
	(identical_copies_p): Port to tuples.
	(identical_stmt_lists_p): Likewise.
	(init_analyze_edges_for_bb): Likewise.
	(fini_analyze_edges_for_bb): Likewise.
	(process_single_block_loop_latch): Likewise.
	(analyze_edges_for_bb): LIkewise.
	(remove_ssa_form): Likewise.
	(insert_backedge_copies):
	(rewrite_out_of_ssa):Likewise.
	(pass_del_ssa): flip works_with_tuples_p. Don't require PROP_alias.

	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Port to tuples.
	(abnormal_corrupt): Port to tuples.
	(fail_abnormal_edge_coalesce): Port to tuples.
	(create_outofssa_var_map):Port to tuples.
	(coalesce_partitions): Port to tuples.

2008-02-01  Rafael Espíndola  <espindola@google.com>

	* tree-ssa-operands.c (free_stmt_operands): Only free
	with_ops.addresses_taken if stmt has ops.

2008-01-31  Rafael Espíndola  <espindola@google.com>

	* tree-optimize.c (pass_free_cfg_annotations): Flip
	works_with_tuples_p.
	* passes.c (init_optimization_passes): Enable
	pass_free_cfg_annotations.

2008-01-30  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01461.html

	* tree-into-ssa.c (compute_global_livein): Initialize
	PHI with call to gsi_stmt.
	(rewrite_update_init_block): Likewise.
	* tree-complex.c (expand_complex_comparison): Initialize
	TYPE.
	(expand_complex_operations_1): Initialize BR and BI.
	* ebitmap.h (ebitmap_iter_init): Initialize OURN.
	* Makefile.in (dse.o-warn, ebitmap.o-warn,
	lower-subreg.o-warn, tree-chrec.o-warn, varasm.o-warn):
	New.

2008-01-30  Rafael Espíndola  <espindola@google.com>

	* gimplify.c (gimplify_scan_omp_clauses): Comment out
	pop_gimplify_context calls

2008-01-30  Rafael Espíndola  <espindola@google.com>

	* gimple.h (gsi_after_labels): Add.

2008-01-30  Rafael Espíndola  <espindola@google.com>

	* Makefile.in (tree-complex.o): Uncomment gt-tree-vect-generic.h.
	(GTFILES): Add tree-vect-generic.c.
	* passes.c (init_optimization_passes): Enable pass_lower_vector.
	* tree-vect-generic.c: uncomment all the file.
	(elem_op_func): Use gimple_stmt_iterator instead of
	block_stmt_iterator.
	(tree_vec_extract): Likewise. Rename bsi to gsi.
	(do_unop): Likewise.
	(do_binop): Likewise.
	(do_plus_minus): Likewise.
	(do_negate): Likewise.
	(expand_vector_piecewise): Likewise.
	(expand_vector_parallel): Likewise.
	(expand_vector_addition): Likewise.
	(expand_vector_operation): Likewise. Remove "tree rhs" param. Add
	"gimple assign" param. Use gimple_assign_rhs1|2 instead of
	TREE_OPERAND.
	(expand_vector_operations_1): Use gimple_stmt_iterator instead of
	block_stmt_iterator. Rename bsi to gsi. Use gsi_stmt instead of
	bsi_stmt. Use gimple_assign_* instead of GIMPLE_STMT_OPERAND. Use
	gimple_assign_set_rhs_from_tree instead of setting *p_rhs.
	(gate_expand_vector_operations): Use gimple_stmt_iterator instead
	of block_stmt_iterator. Use gsi_* instead of bsi_*
	(pass_lower_vector): flip works_with_tuples_p
	(pass_lower_vector_ssa) flip works_with_tuples_

2008-01-29  Rafael Espíndola  <espindola@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01434.html

	* gimple.c (gimple_assign_set_rhs_with_ops): Fix
	allocation of operand vector.

2008-01-29  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01434.html

	* tree-into-ssa.c (prepare_block_for_update): Initialize
	PHI.
	* tree.c (build_gimple_modify_stmt): Fix documentation.

	* tree-complex.c: Convert to tuples.
	(pass_lower_complex_O0): Re-enable.

	* ipa-cp.c (constant_val_insert): Disable.
	* tree-gimple.c (get_gimple_rhs_class): Handle SSA_NAME.

	* tree-ssa-propagate.c: Fix documentation to refer to
	prop_simulate_again_p.
	(add_ssa_edge): Call prop_simulate_again_p.
	(simulate_stmt): Likewise.
	(simulate_block): Fix loop iterating over PHI nodes.
	* tree-ssa-propagate.h (prop_set_simulate_again): New.
	(prop_simulate_again_p): New.
	* gimple-iterator.c (gsi_insert_seq_after): Re-write to
	avoid use of gimple_stmt_iterator.
	(gimple_find_edge_insert_loc): Move from tree-cfg.c.
	Re-enable.
	(gsi_commit_edge_inserts): Likewise.
	(gsi_commit_one_edge_insert): Likewise.
	(gsi_insert_on_edge): Likewise.
	(gsi_insert_on_edge_immediate): Likewise.
	(gsi_insert_seq_on_edge): New.
	* gimplify.c (gimplify_cond_expr): Call
	gimple_cond_get_ops_from_tree.
	* tree-optimize.c (pass_all_optimizations): Enable.
	* gimple.c (gimple_cond_get_ops_from_tree): New.
	(gimple_build_cond_from_tree): New.
	* basic-block.h (struct edge_def): Replace field
	edge_def_insns.t with gimple_seq edge_def_insns.g.
	Update all users.
	* gimple.h (gimple_stmt_iterator):
	* tree-cfg.c (change_bb_for_stmt):
	* passes.c (init_optimization_passes): Move #if0 around
	to disable passes in groups instead of individually.
	(execute_function_todo): Re-enable call to update_ssa.

2008-01-25  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-pretty-print.c (dump_gimple_stmt): Handle
	GIMPLE_OMP_PARALLEL.
	* gimplify.c (pop_gimplify_context): Add comment.
	(gimplify_and_return_first): New.
	(gimplify_scan_omp_clauses): Remove unused 'gs'.
	Remove #if 0.
	(gimplify_omp_parallel): Convert to tuples.
	(gimplify_omp_workshare): Remove redundant retval.
	(gimplify_expr): Adapt to lack of retval for gimplify_omp_variable and
	gimplify_omp_workshare.
	Abort on OMP_ATOMIC_{LOAD,STORE} case.

2008-01-21  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @131695

	* configure.ac (ACX_PKGVERSION): Update revision merge
	string.
	* configure: Regenerate.

2008-01-15  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00674.html

	* tree-into-ssa.c (mark_def_sites): Force operand scan.
	* gimple.def (GIMPLE_ASSIGN): Move into section of
	statements with memory operands.
	* gimple-dummy.c (remove_unused_locals): Remove.
	* tree-flow-inline.h (noreturn_call_p,
	mark_stmt_modified, update_stmt, update_stmt_if_modified,
	stmt_modified_p): Remove.
	* tree-ssa-live.c: Convert to tuples.
	* gimple.c (gimple_set_modified): Replace
	mark_stmt_modified.  Update all callers.
	(gimple_remove): Call free_stmt_operands.
	* gimple.h: Include tree-ssa-operands.h
	Move extern function declarations earlier in the file.
	(GIMPLE_CHECK2): Remove.
	(GIMPLE_RANGE_CHECK): Remove.
	(struct gimple_statement_with_ops): Fix GTY markers.
	(struct gimple_statement_with_memory_ops): Likewise.
	(gimple_modified_p): Replace stmt_modifed_p.  Update all
	users.
	(update_stmt): Move from tree-flow-inline.h.  Update all
	users.
	(update_stmt_if_modified): Likewise.
	(gimple_has_ops): Use range GIMPLE_COND ... GIMPLE_RETURN
	(gimple_has_mem_ops): Use range GIMPLE_ASSIGN ... GIMPLE_RETURN
	(gimple_num_ops): Call gimple_has_ops.
	(gimple_ops): Likewise.
	(gimple_op): Likewise.
	(gimple_op_ptr): Likewise.
	(gimple_set_op): Likewise.
	(gimple_set_addresses_taken): Remove.  Update all users.
	(gimple_add_to_addresses_taken): Likewise.
	(gimple_call_noreturn_p): Replace noreturn_call_p.
	Update all users.
	(gimple_phi_arg): Assert that INDEX is smaller than
	CAPACITY.
	* passes.c (init_optimization_passes): Enable
	pass_referenced_vars, pass_reset_cc_flags and pass_build_ssa.
	* tree-ssa-operands.c (gimple_set_stored_syms): Do not
	free the STORES field if SYMS is empty.
	(gimple_set_loaded_syms): Likewise.
	(finalize_ssa_stmt_operands): Only call
	finalize_ssa_vdefs and finalize_ssa_vuses if STMT has
	memory operands.
	(get_expr_operands): Handle CASE_LABEL_EXPR.
	(free_stmt_operands): Free bitmaps ADDRESSES_TAKEN,
	STORES and LOADS.
	(gimple_add_to_addresses_taken): Rename from
	add_to_addressable_set.

2008-01-14  Aldy Hernandez  <aldyh@redhat.com>

	* tree-dfa.c (dump_dfa_stats): Add %z modifier to size_t argument.

2008-01-11  Andrew MacLeod  <amacleod@redhat.com>
	    Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00493.html

	* tree.h (struct ssa_use_operand_d): Replace field STMT
	with a union field LOC containing the fields STMT and
	SSA_NAME.
	Update all users.
	* tree-flow.h (struct immediate_use_iterator_d): Document
	how immediate use iteration works.

2008-01-10  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00444.html

	* Makefile.in (tree-complex.o): Remove gt-tree-vect-generic.h

2008-01-10  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00436.html

	* tree-ssa-operands.h (PHI_RESULT_PTR): Call
	gimple_phi_result_ptr.
	(PHI_ARG_DEF_PTR): Call gimple_phi_arg_imm_use_ptr.
	(free_ssa_operands): Remove.
	(copy_virtual_operands, create_ssa_artificial_load_stmt,
	add_to_addressable_set, discard_stmt_changes,
	FOR_EACH_PHI_OR_STMT_USE, FOR_EACH_PHI_OR_STMT_DEF): Convert
	to use 'gimple'.
	* tree-into-ssa.c: Convert to use 'gimple'.
	(rewrite_uses_p): New.  Use instead of REWRITE_THIS_STMT.
	(set_rewrite_uses): New.  Use instead of REWRITE_THIS_STMT.
	(register_defs_p): New.  Use instead of
	REGISTER_DEFS_IN_THIS_STMT.
	(set_register_defs): New.  Use instead of
	REGISTER_DEFS_IN_THIS_STMT.
	(REWRITE_THIS_STMT): Remove.
	(REGISTER_DEFS_IN_THIS_STMT): Remove.
	* tree-pretty-print.c (dump_vops): Remove.  Update all
	users.
	(dump_generic_node): Do not handle PHI_NODE.
	* tree.c (tree_node_kind): Remove "phi_nodes" entry.
	(tree_code_size): Do not handle PHI_NODE.
	(tree_size): Likewise.
	(make_node_stat): Likewise.
	(tree_node_structure): Likewise.
	(phi_node_elt_check_failed): Remove.
	* tree.h (PHI_NODE_ELT_CHECK): Remove.
	(PHI_RESULT_TREE): Remove.
	(PHI_ARG_DEF_TREE): Remove.
	(PHI_CHAIN): Remove.
	(PHI_NUM_ARGS): Remove.
	(PHI_ARG_CAPACITY): Remove.
	(PHI_ARG_ELT): Remove.
	(PHI_ARG_EDGE): Remove.
	(PHI_BB): Remove.
	(PHI_ARG_IMM_USE_NODE): Remove.
	(struct tree_phi_node): Remove.
	(union tree_node): Remove field 'phi'.
	(release_phi_node): Change argument to gimple.
	(duplicate_ssa_name): Change second argument to gimple.
	(swap_tree_operands): Remove.
	(enum tree_node_kind): Remove phi_kind entry.
	* tree-phinodes.c: Convert to use gimple.
	* tree-gimple.c (is_gimple_stmt): Do not handle PHI_NODE.
	* cgraphunit.c (cgraph_process_new_functions): Call
	gimple_unreachable to mark unconverted sections.
	(verify_cgraph_node): Do not ICE if THIS_CFUN is NULL.
	Convert statement verification to use gimple.
	(cgraph_expand_function): Call gimple_unreachable to mark
	unconverted sections.
	* tree-ssa-propagate.c: Convert to use gimple.
	(STMT_IN_SSA_EDGE_WORKLIST): Use flag GF_PLF_1 as marker.
	(DONT_SIMULATE_AGAIN): Remove.  Use gimple_visited.
	* gimple-dummy.c: Remove converted functions.
	* tree-ssa-alias.c (may_be_aliased): Re-enable.
	* tree-flow-inline.h (gimple_phi_arg_imm_use_ptr): Rename
	from get_phi_arg_def_ptr.
	(bsi_start, bsi_after_labels, bsi_last, bsi_end_p,
	bsi_next, bsi_prev, bsi_stmt, bsi_stmt_ptr): Remove.
	* tree.def (PHI_NODE): Remove.  Update most users.
	* tree-dfa.c: Convert to use gimple.
	* common.opt (fgimple-conversion): Default to 0.
	* tree-ssa.c: Convert to use gimple.
	* tree-optimize.c (pass_early_local_passes,
	pass_all_early_optimization, pass_init_datastructures):
	Enable.
	* tree-flow.h (tree_ann_type): Remove STMT_ANN.  Update
	all users.
	(struct stmt_ann_d): Remove.  Update all users.
	* Makefile.in (GIMPLE_H): Add tree-ssa-operands.h.
	(tree-ssa-copy.o, tree-phi-nodes.o, tree-complex.o):
	Re-enable.
	* gimple.h (enum plf_mask): Define.
	(GF_NO_WARNING): Remove
	(bb_seq): Return NULL if BB->il.gimple is NULL.
	(struct gimple_statement_base): Add bitfields no_warning,
	visited, unused_1, unused_2, unused_3, unused_4 and plf.
	(gimple_flags, gimple_set_flags, gimple_add_flag):
	Remove.  Update all users.
	(gimple_set_visited): New.
	(gimple_visited_p): New.
	(gimple_set_plf): New.
	(gimple_plf): New.
	(gimple_has_volatile_ops): New.
	(gimple_set_has_volatile_ops): New.
	(gimple_addresses_taken): New.
	(gimple_set_addresses_taken): New.
	(gimple_add_to_addresses_taken): New.
	(gimple_phi_result_ptr): New.
	(gsi_stmt_ptr): New.
	(gsi_bb): New.
	(gsi_seq): New.
	* tree-cfg.c (execute_build_cfg): Do not call
	gimple_set_body after building the CFG.
	(pass_build_cfg): Do not require PROP_gimple_leh.
	(gimplify_val): Convert to gimple.
	* passes.c (init_optimization_passes): Disable all of
	pass_all_early_optimizations.
	* tree-ssanames.c: Convert to gimple.
	* tree-ssa-operands.c: Convert to gimple.
	(gimple_set_stored_syms): New.
	(gimple_set_loaded_syms): New.

2008-01-03  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @131303

	* configure.ac (ACX_PKGVERSION): Update revision merge
	string.
	* configure: Regenerate.

2007-12-20  Diego Novillo  <dnovillo@google.com>

	* Makefile.in (builtins.o-warn, expr.o-warn): Add
	-Wno-error.

2007-12-05  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00221.html

	* gimple.c (walk_gimple_asm): Guard against WI being
	NULL.
	(walk_gimple_stmt): Likewise.

2007-12-05  Diego Novillo  <dnovillo@google.com>

	http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00216.html

	* tree.h (gimple_unreachable_1): Declare.
	(gimple_unreachable): Define.
	Replace calls to gcc_unreachable with gimple_unreachable
	in unconverted code.
	* gimple-dummy.c (gimple_unreachable_1): New function.
	* common.opt (fgimple-only): Remove.
	(fgimple-conversion): Define.
	* Makefile.in (STRICT_WARN): Add -Wno-return-type.

2007-11-30  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @130470

	* configure.ac (ACX_PKGVERSION): Update revision merge
	string.
	* configure: Regenerate.
	* tree-inline.c (copy_decl_no_change,
	copy_decl_for_dup_finish): Re-enable.

2007-11-26  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.h (gimple_bind_block): Update comment.
	
2007-11-19  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @130291.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2007-11-19  Diego Novillo  <dnovillo@google.com>

	* tree-flow-inline.h (get_lineno): Call IS_LOCATION_EMPTY
	and LOCATION_LINE instead of accessing location fields
	directly.
	* gimple-low.c (lower_function_body): Use
	UNKNOWN_LOCATION instead of unknown_location.

2007-11-16  Diego Novillo  <dnovillo@google.com>

	* cgraph.c (cgraph_create_edge): Call gimple_body
	instead of DECL_SAVED_TREE.
	(dump_cgraph_node): Likewise.
	* cgraphunit.c (verify_cgraph_node): Likewise.
	(cgraph_analyze_functions): Likewise.
	(cgraph_mark_functions_to_output): Likewise.
	(cgraph_optimize): Likewise.
	* tree-eh.c (lower_eh_constructs): Add notes for future
	changes to calls to DECL_SAVED_TREE.
	(refactor_eh_r): Likewise.
	* cfgexpand.c (gimple_to_tree): New function.
	(maybe_dump_rtl_for_gimple_stmt): Rename from
	maybe_dump_rtl_for_tree_stmt.  Convert to tuples.
	(label_rtx_for_bb): Convert to tuples.
	(expand_gimple_cond): Rename from
	expand_gimple_cond_expr.  Convert to tuples.
	(expand_gimple_tailcall): Convert to tuples.
	(expand_gimple_basic_block): Convert to tuples.
	(discover_nonconstant_array_refs_r): Convert to tuples.
	(discover_nonconstant_array_refs): Convert to tuples.
	* tree-mudflap.c (execute_mudflap_function_decls): Add
	deprecation comment for DECL_SAVED_TREE call.
	* tree-inline.c (copy_generic_body): Call gimple_body
	instead of DECL_SAVED_TREE.
	(inlinable_function_p): Likewise.
	(clone_body): Add deprecation comment for DECL_SAVED_TREE
	call.
	* tree-cfg.c (remove_useless_stmts_bind): Call
	gimple_body instead of DECL_SAVED_TREE.
	(remove_useless_stmts): Likewise.

2007-11-10  Aldy Hernandez  <aldyh@redhat.com>

	* tree-cfg.c (verify_types_in_gimple_call): OBJ_TYPE_REF are allowed
	as function types.

	[objc]
	* objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
	* objc-act.h (objc_gimplify_expr): Change prototype accordingly.
	
	[testsuite]
	* lib/objc.exp: Set -I regardless of libobjc.

2007-11-10  Aldy Hernandez  <aldyh@redhat.com>

	* tree-gimple.h (tree_annotate_all_with_locus): New.
	* gimple-dummy.c: Add omp_reduction_init and
	diagnose_omp_structured_block_errors.
	* gimplify.c (tree_should_carry_locus_p): New.
	(tree_annotate_one_with_locus): New.
	(tree_annotate_all_with_locus): New.

2007-11-08  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @129982

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2007-11-01  Diego Novillo  <dnovillo@google.com>

	* cgraphbuild.c (initialize_inline_failed): Re-enable.
	(build_cgraph_edges): Adapt to use tuples.
	(pass_build_cgraph): Re-enable.
	(rebuild_cgraph_edges): Adapt to use tuples.
	* cgraph.c (cgraph_release_function_body): Also NULLify the
	gimple body.
	(debug_cgraph_node): New.
	(debug_cgraph): New.
	* cgraph.h (struct cgraph_edge): Change field CALL_STMT to
	type gimple.  Update all users.
	* cgraphunit.c (cgraph_analyze_functions): If DECL does not
	have a struct function entry, discard it.
	* gimple.h (GF_CALL_CANNOT_INLINE): New.
	(gimple_call_lhs_ptr): New.
	(gimple_call_mark_uninlinable): New.
	(gimple_call_cannot_inline_p): New.
	(struct walk_stmt_info): Add field PSET.

2007-11-01  Diego Novillo  <dnovillo@google.com>

	* tree-optimize.c (tree_rest_of_compilation): Call
	gimple_set_body to remove the body if not inlining.
	* gimple.c (walk_gimple_stmt): Update documentation.
	Pass WI->PSET to every call to walk_tree.

2007-11-01  Diego Novillo  <dnovillo@google.com>

	* langhooks.h (struct lang_hooks_for_callgraph): Remove third
	argument from function pointer ANALYZE_EXPR.  Update all
	users.

2007-10-30  Diego Novillo  <dnovillo@google.com>

	* gimple.c (gimple_build_omp_return): Call
	gimple_omp_return_set_nowait if needed.
	* gimple.h (GIMPLE_CHECK, GIMPLE_CHECK2, GIMPLE_RANGE_CHECK):
	Move earlier in the file.
	(GF_NO_WARNING): Change to static const unsigned.
	(GF_CALL_TAILCALL): New.
	(GF_OMP_PARALLEL_COMBINED): Rename from
	OMP_PARALLEL_COMBINED_FLAG.  Change to static const unsigned.
	Update all users.
	(GF_OMP_RETURN_NOWAIT): Rename from OMP_RETURN_NOWAIT_FLAG.
	Change to static const unsigned.
	Update all users.
	(GF_OMP_SECTION_LAST): Rename from OMP_SECTION_LAST_FLAG.
	Change to static const unsigned.
	Update all users.
	(gimple_omp_return_set_nowait): New.
	(gimple_call_set_tail): New.
	(gimple_call_tail_p): New.

2007-10-30  Aldy Hernandez  <aldyh@redhat.com>

	* gimplify.c (get_tmp_var_for): Remove reference to IS_FORMAL in
	opening comment.
	(gimplify_return_expr): Return GS_ERROR if we have errored.
	(gimplify_statement_list): Handle case where voidify_wrapper returns a
	temporary.
	(gimplify_call_expr): Return gracefully on error.
	(gimplify_cond_expr): Same.
	* gimple.h (gimple_call_return_type): Do not error on methods.

2007-10-29  Diego Novillo  <dnovillo@google.com>
	    Tom Tromey  <tromey@redhat.com>

	* gimple.h (gimple_locus): Update comment.
	(gimple_set_locus): Likewise.
	(gimple_locus_empty_p): Add support for mapped locations.

2007-10-29  Diego Novillo  <dnovillo@google.com>

	* tree-optimize.c (execute_cleanup_cfg_pre_ipa): Re-enable.
	* gimple.c (walk_gimple_asm): Tidy comment.

2007-10-29  Aldy Hernandez  <aldyh@redhat.com>

	* tree-gimple.h (build_gimple_eh_filter_tree): Remove.
	* gimplify.c (build_gimple_eh_filter_tree): Move from here...
	* cp/cp-gimplify.c: ...to here.
	(cp_gimplify_init_expr): Convert to tuples.
	(gimplify_must_not_throw_expr): Make function return a
	gimplify_status and convert to tuples.
	(cp_gimplify_expr): Convert MUST_NOT_THROW_EXPR, INIT_EXPR, and
	USING_STMT to tuples.

2007-10-28  Aldy Hernandez  <aldyh@redhat.com>

	* gimplify.c (gimplify_body): Make work when body contains more than
	a GIMPLE_BIND statement.

2007-10-26  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @129659.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2007-10-26  Diego Novillo  <dnovillo@google.com>

	* gimple-low.c (lower_builtin_setjmp): Pass ARG to first
	call to gimple_build_call.

2007-10-17  Aldy Hernandez  <aldyh@redhat.com>

	* tree-gimple.c (get_gimple_rhs_class): Add case for EXC_PTR_EXPR.
	* gimplify.c (gimple_conditional_context): Enable.
	(gimplify_cleanup_point_expr): Enable.  Adjust for tuples.
	(gimple_push_cleanup): Enable.
	(gimplify_target_expr): Do not gimplify TARGET_EXPR_CLEANUP before
	calling gimple_push_cleanup.
	(gimplify_expr): Rename `try' to `try_'.
	Enable CLEANUP_POINT_EXPR case.
	Gimplify CATCH_EXPR and EH_FILTER_EXPR cases correctly.

2007-10-17  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (gimple_size): Handle GIMPLE_WITH_CLEANUP_EXPR.
	* gimple.h (struct gimple_statement_catch): Make handler a structure,
	not a pointer.
	(struct gimple_statement_eh_filter): Make failure a structure, not a
	pointer.
	document EH_FILTER_MUST_NOT_THROW subcode flag.
	(gimple_catch_handler): Handler is now a struct.
	(gimple_catch_set_handler): Same.
	(gimple_eh_filter_failure): Failure is now a struct.
	(gimple_eh_filter_set_failure): Same.
	(gimple_eh_filter_must_not_throw): New.
	(gimple_eh_filter_set_must_not_throw): New.
	(gsi_next): Update comment.
	(gsi_prev): Same.
	* tree-cfg.c (verify_types_in_gimple_seq_2): Handle GIMPLE_EH_FILTER.

2007-10-18  Diego Novillo  <dnovillo@google.com>

	* gimple-iterator.c (gsi_delink): Remove.
	* gimple.h (gsi_delink): Remove.

2007-10-17  Diego Novillo  <dnovillo@google.com>

	* coretypes.h (const_gimple_seq): New typedef.
	* gimple.h (gimple_seq_first): Constify argument.
	(gimple_seq_last): Likewise.
	(gimple_seq_copy): Likewise.
	(gimple_seq_empty_p): Likewise.
	(gimple_set_prev): Rename from set_gimple_prev.
	Update all users.
	(gimple_set_next): Rename from set_gimple_next.
	Update all users.
	(gimple_set_flags): Rename from set_gimple_flags.
	Update all users.
	(gimple_add_flag): Rename from add_gimple_flag.
	Update all users.
	(gimple_set_subcode): Rename from set_gimple_subcode.  
	Update all users.
	(gimple_set_block): Rename from set_gimple_block.
	Update all users.
	(gimple_set_locus): Rename from set_gimple_locus.
	Update all users.
	(gimple_locus_empty_p): Constify argument.
	(gimple_has_ops): Likewise.
	(gimple_has_mem_ops): Likewise.
	(gimple_def_ops): Likewise.
	(gimple_set_def_ops): Rename from set_gimple_def_ops.
	Update all users.
	(gimple_use_ops): Constify argument.
	(gimple_set_use_ops): Rename from set_gimple_use_ops.
	Update all users.
	(gimple_vuse_ops): Constify argument.
	(gimple_set_vuse_ops): Rename from set_gimple_vuse_ops.
	Update all users.
	(gimple_vdef_ops): Constify argument.
	(gimple_set_vdef_ops): Rename from set_gimple_vdef_ops.
	Update all users.
	(gimple_loaded_syms): Constify argument.
	(gimple_stored_syms): Constify argument.
	(gimple_modified): Constify argument.
	(gimple_set_modified): Rename from set_gimple_modified.
	Update all users.
	(gimple_omp_return_nowait_p): Constify argument.
	(gimple_omp_section_last_p): Constify argument.
	(gimple_omp_parallel_combined_p): Constify argument.
	(gimple_build_return): Rename from build_gimple_return.
	Update all users.
	(gimple_build_assign): Rename from build_gimple_assign.
	Update all users.
	(gimple_build_assign_with_ops): Rename from
	build_gimple_assign_with_ops.
	Update all users.
	(gimple_build_call_vec): Rename from build_gimple_call_vec.
	Update all users.
	(gimple_build_call): Rename from build_gimple_call.
	Update all users.
	(gimple_build_cond): Rename from build_gimple_cond.
	Update all users.
	(gimple_build_label): Rename from build_gimple_label.
	Update all users.
	(gimple_build_goto): Rename from build_gimple_goto.
	Update all users.
	(gimple_build_nop): Rename from build_gimple_nop.
	Update all users.
	(gimple_build_asm): Rename from build_gimple_asm.
	Update all users.
	(gimple_build_asm_vec): Rename from build_gimple_asm_vec.
	Update all users.
	(gimple_build_catch): Rename from build_gimple_catch.
	Update all users.
	(gimple_build_eh_filter): Rename from build_gimple_eh_filter.
	Update all users.
	(gimple_build_try): Rename from build_gimple_try.
	Update all users.
	(gimple_build_wce): Rename from build_gimple_wce.
	Update all users.
	(gimple_build_resx): Rename from build_gimple_resx.
	Update all users.
	(gimple_build_switch): Rename from build_gimple_switch.
	Update all users.
	(gimple_build_switch_vec): Rename from
	build_gimple_switch_vec.  Update all users.
	(gimple_build_omp_parallel): Rename from
	build_gimple_omp_parallel.  Update all users.
	(gimple_build_omp_for): Rename from build_gimple_omp_for.
	Update all users.
	(gimple_build_omp_critical): Rename from
	build_gimple_omp_critical.
	Update all users.
	(gimple_build_omp_section): Rename from
	build_gimple_omp_section.  Update all users.
	(gimple_build_omp_continue): Rename from
	build_gimple_omp_continue.  Update all users.
	(gimple_build_omp_master): Rename from
	build_gimple_omp_master.  Update all users.
	(gimple_build_omp_ordered): Rename from
	build_gimple_omp_ordered.  Update all users.
	(gimple_build_omp_sections): Rename from
	build_gimple_omp_sections.  Update all users.
	(gimple_build_omp_single): Rename from
	build_gimple_omp_single.  Update all users.
	(gimple_set_body): Rename from set_gimple_body.  Update all
	users.
	(gimple_set_bb): Rename from set_gimple_bb.  Update all users.
	(is_gimple_operand): Constify argument.
	(gimple_ops): Likewise.
	(gimple_op_ptr): Likewise.
	(gimple_call_lhs): Likewise.
	(gimple_call_return_type): Likewise.
	(gimple_call_chain): Likewise.
	(gimple_call_arg_ptr): Likewise.
	(gimple_cond_true_label): Likewise.
	(gimple_bind_vars): Likewise.
	(gimple_bind_set_body): Likewise.
	(gimple_bind_block): Likewise.
	(gimple_asm_ninputs): Likewise.
	(gimple_asm_noutputs): Likewise.
	(gimple_asm_nclobbers): Likewise.
	(gimple_asm_input_op): Likewise.
	(gimple_asm_output_op): Likewise.
	(gimple_asm_clobber_op): Likewise.
	(gimple_asm_string): Likewise.
	(gimple_asm_volatile_p): Likewise.
	(gimple_catch_types): Likewise.
	(gimple_catch_handler): Likewise.
	(gimple_eh_filter_types): Likewise.
	(gimple_eh_filter_failure): Likewise.
	(gimple_try_kind): Likewise.
	(gimple_try_set_eval): Likewise.
	(gimple_try_set_cleanup): Likewise.
	(gimple_wce_set_cleanup): Likewise.
	(gimple_wce_cleanup_eh_only): Likewise.
	(gimple_phi_capacity): Likewise.
	(gimple_phi_num_args): Likewise.
	(gimple_phi_result): Likewise.
	(gimple_resx_region): Likewise.
	(gimple_switch_num_labels): Likewise.
	(gimple_switch_label): Likewise.
	(gimple_switch_default_label): Likewise.
	(gimple_omp_set_body): Likewise.
	(gimple_omp_critical_name): Likewise.
	(gimple_omp_for_clauses): Likewise.
	(gimple_omp_for_index): Likewise.
	(gimple_omp_for_initial): Likewise.
	(gimple_omp_for_final): Likewise.
	(gimple_omp_for_incr): Likewise.
	(gimple_omp_for_set_pre_body): Likewise.
	(gimple_omp_parallel_clauses): Likewise.
	(gimple_omp_parallel_child_fn): Likewise.
	(gimple_omp_parallel_data_arg): Likewise.
	(gimple_omp_single_clauses): Likewise.
	(gimple_omp_sections_clauses): Likewise.
	(gimple_omp_for_cond): Likewise.
	(gimple_return_retval): Likewise.
	(is_gimple_omp): Likewise.
	(gimple_nop_p): Likewise.
	(gimple_expr_type): Likewise.

2007-10-17  Diego Novillo  <dnovillo@google.com>

	* tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge): Rename
	from tree_duplicate_loop_to_header_edge.
	Update all users.
	* value-prof.c: Convert and enable all functions in the file.
	(gimple_divmod_fixed_value): Rename from
	tree_divmod_fixed_value.
	(gimple_mod_pow2): Rename from tree_mod_pow2.
	(gimple_mod_subtract): Rename from tree_mod_subtract.
	(gimple_divmod_fixed_value_transform): Rename from
	tree_divmod_fixed_value_transform.
	(gimple_mod_pow2_value_transform): Rename from
	tree_mod_pow2_value_transform.
	(gimple_mod_subtract_transform): Rename from
	tree_mod_subtract_transform.
	(gimple_stringops_transform): Rename from tree_stringops_transform.
	(gimple_ic_transform): Rename from tree_ic_transform.
	Update all users.
	* value-prof.h (gimple_register_value_prof_hooks): Rename from
	tree_register_value_prof_hooks.  Update all users.
	* tree.h (OMP_DIRECTIVE_P): Remove.  Update all users.
	(validate_arglist): Move to gimple.h.
	* builtins.c: (validate_arglist): Change first argument to
	const_gimple.  Disable most callers.
	* gimple.def: Document all GIMPLE codes.
	* tree-gimple.c (is_gimple_operand): New.
	(get_gimple_rhs_class)<ADDR_EXPR>: Accept as a
	GIMPLE_SINGLE_RHS.
	<WITH_SIZE_EXPR>: Likewise.
	(get_gimple_rhs_num_ops): New.
	(is_gimple_call_addr): Tidy.
	* tree-gimple.h (get_gimple_rhs_num_ops): Declare.
	* gimple-dummy.c (free_histograms, stringop_block_profile):
	Remove.
	* gimple-low.c (lower_function_body): Tidy.
	* predict.c (gimple_predicted_by_p): Rename from
	tree_predicted_by_p.  Update all users.
	(gimple_predict_edge): Rename from tree_predict_edge.  Update
	all users.
	* gimple-iterator.c (gsi_link_seq_after): Update documentation.
	(gsi_link_after): Likewise.
	* tree-eh.c (stmt_could_throw_1_p): New.
	(stmt_could_throw_p): New.
	* gimple-pretty-print.c (dump_unary_rhs): Print ADDR_EXPR as
	a single operand.
	(dump_gimple_switch): Support NULL case labels.
	(dump_gimple_asm): Dump outputs first.
	* gimplify.c (compare_case_labels): Make the default label
	sort first.
	(sort_case_labels): Do not special case the default label.
	(gimplify_init_ctor_eval): Gimplify initializer expressions.
	(gimplify_modify_expr): Unshare the operands before setting
	them on the new GIMPLE_ASSIGN statement.
	(gimplify_asm_expr): NULLify the chain on operands before
	putting them on the input/output vectors.
	* tree-cfgcleanup.c: Convert and enable CFG cleanup functions.
	(cleanup_control_expr_graph): Call gimple_fold.
	* tree-flow.h (gimple_block_label): Rename from
	tree_block_label.  Update all users.
	(gimple_duplicate_sese_region): Rename from
	tree_duplicate_sese_region.  Update all users.
	(gimple_duplicate_sese_tail): Rename from
	tree_duplicate_sese_tail.  Update all users.
	(gimple_purge_dead_abnormal_call_edges): Rename from
	tree_purge_dead_abnormal_call_edges.  Update all users.
	(gimple_purge_all_dead_eh_edges): Rename from
	tree_purge_all_dead_eh_edges.  Update all users.
	(stmt_could_throw_p): Declare.
	(add_stmt_to_eh_region_fn): Move from except.h.
	(remove_stmt_from_eh_region_fn): Likewise.
	(lookup_stmt_eh_region_fn): Likewise.
	(lookup_stmt_eh_region): Likewise.
	(verify_eh_edges): Likewise.
	* Makefile.in (GIMPLE_H): Add dependencies on GGC_H, TM_H and
	TARGET_H.
	(ipa-inline.o): Add dependency on TREE_FLOW_H.
	(out_object_file): Add dependency on TREE_GIMPLE_H.
	* gimple.c (gimple_set_code): Rename from set_gimple_code.
	(gimple_size): New.
	(gimple_alloc): New.
	(gimple_alloc_ops): New.
	(build_gimple_with_ops): Call them.
	(build_gimple_return): Only call gimple_return_set_retval if
	RETVAL is not NULL.
	(build_gimple_call): Validate argument FN.
	(extract_ops_from_tree): New.
	(build_gimple_assign_with_ops): New.
	(build_gimple_assign): Call them.
	(build_gimple_nop):  Call gimple_alloc.
	(build_gimple_bind): Likewise.
	(build_gimple_asm_1): Tidy.
	(build_gimple_asm_vec): Tidy.
	(build_gimple_asm): Tidy.
	(build_gimple_catch): Call gimple_alloc.
	(build_gimple_eh_filter): Likewise.
	(build_gimple_try): Likewise.
	(build_gimple_wce): Likewise.
	(build_gimple_phi): Remove.
	(build_gimple_resx): Call gimple_alloc.
	(build_gimple_switch_1): Tidy.
	(build_gimple_switch): Tidy.
	(build_gimple_omp_critical): Call gimple_alloc.
	(build_gimple_omp_for): Likewise.
	(build_gimple_omp_parallel): Likewise.
	(build_gimple_omp_section): Likewise.
	(build_gimple_omp_master): Likewise.
	(build_gimple_omp_continue): Likewise.
	(build_gimple_omp_ordered): Likewise.
	(build_gimple_omp_return): Likewise.
	(build_gimple_omp_sections): Likewise.
	(build_gimple_omp_single): Likewise.
	(gimple_check_failed): Change GS to const_gimple.  Update all
	users.
	(gimple_range_check_failed): Likewise.
	(walk_gimple_seq): Change return type to tree.  Update all
	users.
	If the call to walk_gimple_stmt returns non-NULL,
	return it immediately.
	(walk_gimple_asm): Change return type to tree.  Update all
	users.
	If the call to walk_tree returns non-NULL, return it.
	(walk_gimple_stmt): Likewise.
	(gimple_fold): New.
	(gimple_assign_set_rhs_from_tree): New.
	(gimple_assign_set_rhs_with_ops): New.
	(gimple_copy): New.
	* basic-block.h (gimple_predicted_by_p): Rename from
	tree_predicted_by_p.  Update all users.
	(gimple_predict_edge): Rename from tree_predict_edge.  Update
	all users.
	* gimple.h: Add documentation to all inline functions.
	(gimple_seq_first): Return NULL if S is NULL.
	(gimple_seq_last): Likewise.
	(GF_ASM_VOLATILE): Define.
	(GF_NO_WARNING): Rename from GIMPLE_NO_WARNING.  Update all
	users.
	(build_gimple_assign_with_ops): Declare.
	(build_gimple_asm): Change unsigned arguments to size_t.
	Update all users.
	(build_gimple_switch): Likewise.
	(build_gimple_phi): Remove.
	(validate_arglist): Declare.
	(gimple_fold): Declare.
	(gimple_assign_set_rhs_from_tree): Declare.
	(gimple_assign_set_rhs_with_ops): Declare.
	(gimple_copy): Declare.
	(is_gimple_operand): Declare.
	(gimple_num_ops): Change argument to const_gimple.
	Return 0 if GS is not one of the statements that has tree
	operands.
	(gimple_ops): New.
	(gimple_op): Change argument to const_gimple.
	If GS is not a statement that has tree operands, return NULL.
	(gimple_op_ptr): Likewise.
	(gimple_assign_subcode): Change argument to const_gimple.
	(gimple_assign_operand): Remove.  Update all users.
	(gimple_assign_set_operand): Remove.  Update all users.
	(gimple_assign_lhs): Change argument type to const_gimple.
	(gimple_assign_rhs1): Likewise.
	(gimple_assign_rhs2): Likewise.
	(gimple_assign_set_rhs1): Assert that RHS is a valid operand.
	(gimple_assign_set_rhs2): Likewise.
	(gimple_call_lhs): Call gimple_op.
	(gimple_call_set_lhs): Assert that LHS is a valid operand.
	Call gimple_set_op.
	(gimple_call_set_fn): New.
	(gimple_call_fndecl): Change argument type to const_gimple.
	Call gimple_call_fn.
	(gimple_call_chain): Call gimple_op.
	(gimple_call_set_chain): Assert that CHAIN is valid.
	Call gimple_set_op.
	(gimple_call_nargs): Change argument to const_gimple.
	Call gimple_op.
	(gimple_call_arg_ptr): Call gimple_op_ptr.
	(gimple_call_set_arg): Assert that ARG is valid.
	Call gimple_set_op.
	(gimple_cond_code): Change argument to const_gimple.
	(gimple_cond_lhs): Change argument to const_gimple.
	(gimple_cond_set_lhs): Assert that the operand is valid.
	Call gimple_set_op.
	(gimple_cond_rhs): Change argument to const_gimple.
	Call gimple_op.
	(gimple_cond_true_label): Call gimple_op.
	(gimple_cond_false_label): Likewise.
	(gimple_label_label): Likewise.
	(gimple_cond_set_true_label): Assert that the operand is
	valid.
	Call gimple_set_op.
	(gimple_cond_set_false_label): Likewise.
	(gimple_goto_dest): Change argument to const_gimple.
	Call gimple_set_op.
	(gimple_goto_set_dest): Assert that the operand is valid.
	Call gimple_set_op.
	(gimple_asm_ninputs): Change return type to size_t.  Update
	all users.
	(gimple_asm_noutputs): Likewise.
	(gimple_asm_nclobbers): Rename from gimple_asm_nclobbered.
	Change return type to size_t.
	Update all users.
	(gimple_asm_set_input_op): Assert that the argument is
	valid.
	(gimple_asm_set_output_op): Likewise.
	(gimple_asm_set_clobber_op): Likewise.
	(gimple_asm_volatile_p): New.
	(gimple_asm_set_volatile): New.
	(gimple_asm_clear_volatile): New.
	(gimple_phi_set_capacity): Remove.
	(gimple_phi_set_nargs): Remove.
	(gimple_expr_type): New.
	(struct walk_stmt_info): Remove fields want_bind_expr and
	want_return_expr.  Update all users.
	* tree-cfg.c: Convert all functions for CFG cleanup and
	verification.
	(gimple_redirect_edge_and_branch): Rename from
	tree_redirect_edge_and_branch.
	(gimple_try_redirect_by_replacing_jump): Rename from
	tree_try_redirect_by_replacing_jump.
	(gimple_verify_flow_info): Rename from tree_verify_flow_info.
	(gimple_make_forwarder_block): Rename from
	tree_make_forwarder_block.
	(gimple_cfg2vcg): Rename from tree_cfg2vcg.
	(gimple_merge_blocks): Rename from tree_merge_blocks.
	(gimple_can_merge_blocks_p): Rename from tree_merge_blocks_p.
	(gimple_can_remove_branch_p): Rename from tree_can_remove_branch_p.
	(gimple_redirect_edge_and_branch): Rename from
	tree_redirect_edge_and_branch.
	(gimple_move_block_after): Rename from tree_move_block_after.
	(gimple_predict_edge): Rename from tree_predict_edge.
	(gimple_predicted_by_p): Rename from tree_predicted_by_p.
	(gimple_duplicate_bb): Rename from tree_duplicate_bb.
	(gimple_can_duplicate_bb_p): Rename from tree_can_duplicate_bb_p.
	(gimple_split_edge): Rename from tree_split_edge.
	(gimple_make_forwarder_block): Rename from tree_make_forwarder_block.
	(gimple_block_ends_with_call_p): Rename from
	tree_block_ends_with_call_p.
	(gimple_block_ends_with_condjump_p): Rename from
	tree_block_ends_with_condjump_p.
	(gimple_flow_call_edges_add): Rename from
	tree_flow_call_edges_add.
	(gimple_execute_on_growing_pred): Rename from
	tree_execute_on_growing_pred.
	(gimple_execute_on_shrinking_pred): Rename from
	tree_execute_on_shrinking_pred.
	(gimple_duplicate_loop_to_header_edge): Rename from
	tree_duplicate_loop_to_header_edge.
	(gimple_lv_add_condition_to_bb): Rename from
	tree_lv_add_condition_to_bb.
	(gimple_lv_adjust_loop_header_phi): Rename from
	tree_lv_adjust_loop_header_phi.
	(struct pass_build_cfg): Enable TODO_verify_stmts and
	TODO_cleanup_cfg.
	* passes.c (execute_function_todo): Enable call to
	cleanup_tree_cfg.

2007-10-17  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.def: Add GIMPLE_WITH_CLEANUP_EXPR.
	* gsstruct.def: Add GSS_WCE.
	* gimple-iterator.c (gsi_delink): New.
	(gsi_split_seq_*): Update comment.
	* gimple.c (gss_for_code): Handle GIMPLE_WCE.  Adjust whitespace.
	(build_gimple_wce): New.
	* gimple.h (struct gimple_statement_wce): New.
	(union gimple_statement_d): Add gimple_wce.
	(build_gimple_wce): Protoize.
	(gimple_wce_cleanup): New.
	(gimple_wce_set_cleanup): New.
	(gimple_wce_cleanup_eh_only): New.
	(gimple_wce_set_cleanup_eh_only): New.
	(gsi_delink): Protoize.

2007-10-12  Aldy Hernandez  <aldyh@redhat.com>

	* Makefile.in (GIMPLE_H): Depend on TARGET_H.
	* gimple.h (gsi_alloc): New.
	(_ALLOC_GSI): Remove.
	Replace _ALLOC_GSI uses by gsi_alloc.

2007-10-12  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.h (_ALLOC_GSI): New.
	Use it throughout when allocating a new gimple_stmt_iterator.

2007-10-11  Aldy Hernandez  <aldyh@redhat.com>

	Merge with mainline @129233.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2007-10-11  Aldy Hernandez  <aldyh@redhat.com>

	* cfg.c: Include tree-flow.h.
	(remove_edge_raw): Call redirect_edge_var_map_clear.
	(redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
	* tree-flow-inline.h (redirect_edge_var_map_def): New.
	(redirect_edge_var_map_result): New.
	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
	PENDING_STMT use with redirect_edge_var_map_*.
	* tree-ssa.c (edge_var_maps): New definition.
	(redirect_edge_var_map_add): New.
	(redirect_edge_var_map_clear): New.
	(redirect_edge_var_map_dup): New.
	(redirect_edge_var_map_vector): New.
	(redirect_edge_var_map_destroy): New.
	(ssa_redirect_edge): Replace PENDING_STMT use with
	redirect_edge_var_map_*.
	(flush_pending_stmts): Same.
	(delete_tree_ssa): Destroy edge var map.
	* tree-flow.h (struct _edge_var_map): New.
	Define edge_var_map vector type.
	Declare redirect_edge_var_map_* prototypes.
	* Makefile.in (cfg.o): Depend on TREE_FLOW_H.
	* tree-cfg.c (reinstall_phi_args): Replace
	PENDING_STMT use with redirect_edge_var_map_*.

2007-10-02  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @128957.

	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2007-09-24  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @128708.
	
	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.

2007-09-24  Diego Novillo  <dnovillo@google.com>

	* gimple.h (gimple_code): Change argument type to
	const_gimple.
	(gimple_flags): Likewise.
	(gimple_subcode): Likewise.
	(gimple_next): Likewise.
	(gimple_prev): Likewise.
	(gimple_bb): Likewise.
	(gimple_block): Likewise.
	(gimple_locus): Likewise.

2007-09-15  Diego Novillo  <dnovillo@google.com>

	* gimple-iterator.c (gsi_replace): Call gsi_insert_before and
	gsi_remove to do the replacement.
	(gsi_insert_before): Take the basic block from the iterator.
	(gsi_insert_after): Likewise.
	* gimple-iterator.h: Move inside gimple.h.
	* tree-eh.c (make_eh_edge, make_eh_edges): Enable.
	* gimple-pretty-print.c (dump_gimple_seq, dump_gimple_cond,
	dump_gimple_bind, dump_gimple_try): Do not handle TDF_DETAILS.
	(dump_gimple_switch): Fix display of case labels.
	(dump_gimple_stmt): Handle TDF_DIAGNOSTIC.
	(pp_cfg_jump): New.
	(dump_implicit_edges): New.
	(gimple_dump_bb_buff): Call it.
	* domwalk.c (walk_dominator_tree):
	* gimplify.c (gimplify_switch_expr): Fix generation of
	GIMPLE_SWITCH labels.
	(gimplify_case_label_expr): Emit a label for CASE_LABEL
	instead of the CASE_LABEL_EXPR.
	* Makefile.in (GIMPLE_H): Add dependency on BASIC_BLOCK_H.
	* gimple.c (walk_gimple_stmt): Reverse meaning of return value
	of CALLBACK_STMT.  Update all users.
	Walk sub-statements of statements with bodies.
	* gimple.h (GCC_GIMPLE_H): Rename from GCC_GIMPLE_IR_H.
	Include vec.h, tm.h, hard-reg-set.h and basic-block.h.
	(bb_seq, set_bb_seq): Move from tree-flow-inline.h
	(gimple_label_set_label): Do not allow CASE_LABEL_EXPR.
	(gsi_start_bb): New.  Update all users that were calling
	gsi_start (bb_seq ()).
	(struct gimple_stmt_iterator): Add field 'bb'.
	* tree-cfg.c (build_gimple_cfg): Enable.
	(create_bb): Create a new sequence if the given one is NULL.
	(make_gimple_switch_edges): Rename from make_switch_expr_edges.
	Update all users.
	(cleanup_dead_labels): Fix handling of GIMPLE_SWITCH.
	(group_case_labels): Likewise.
	(verify_types_in_gimple_stmt): Do not allow CASE_LABEL_EXPR in
	a GIMPLE_LABEL.

2007-09-13  Diego Novillo  <dnovillo@google.com>

	* tree-pretty-print.c (dump_symbols, dump_generic_bb,
	dump_bb_header, dump_bb_end, dump_phi_nodes, pp_cfg_jump,
	dump_implicit_edges, dump_generic_bb_buff): Remove.
	* value-prof.c (histogram_eq): Enable.
	(dump_histograms_for_stmt): Adapt to tuples.
	* value-prof.h (struct):
	* cfghooks.h (struct cfg_hooks)<dump_bb>: Add int argument.
	Update all users.
	* gimple-dummy.c (gimple_remove_stmt_histograms,
	remove_stmt_from_eh_region): Remove.
	* gimple-iterator.h (gsi_start): Support NULL sequences.
	* tree-eh.c (add_stmt_to_eh_region): Enable.
	(remove_stmt_from_eh_region): Enable.
	(lookup_stmt_eh_region): Enable.
	(tree_could_throw_p): Enable.
	(stmt_can_throw_internal): Enable.
	* gimple-pretty-print.c: Include value-prof.h
	(dump_gimple_cond): Do not insert a newline initially.
	(dump_gimple_bind): Likewise.
	(dump_gimple_try): Likewise.
	(dump_gimple_asm): Likewise.
	(dump_symbols): Move from tree-pretty-print.c
	(dump_gimple_phi): New.
	(dump_gimple_stmt): Call it..
	(dump_bb_header): Move from tree-pretty-print.c
	(dump_bb_end): Likewise.
	(dump_phi_nodes): Likewise.
	(gimple_dump_bb_buff): New.
	(gimple_dump_bb): New.
	* Makefile.in (gimple-pretty-print.o): Add dependency
	value-prof.h
	* tree-cfg.c (fold_cond_expr_cond): Handle cases where
	fold_binary returns NULL.
	(make_cond_expr_edges): Take locus from the first statement of
	the destination blocks.
	(tree_dump_bb): Remove.
	(gimple_debug_bb): Rename from debug_tree_bb.
	Update all users.
	(gimple_debug_bb_n): Rename from debug_tree_bb_n.
	Update all users.
	(gimple_debug_cfg): Rename from debug_tree_cfg.
	Update all users.
	(gimple_dump_cfg): Rename from dump_tree_cfg.
	Update all users.
	(is_ctrl_altering_stmt): Call gimple_call_flags to determine
	whether the function is const/pure.
	* tree-ssa-operands.c (stmt_references_memory_p): Enable.

2007-09-11  Diego Novillo  <dnovillo@google.com>

	* tree.h (struct tree_ssa_name): Add field def_stmt.
	(SSA_NAME_DEF_STMT): Return it.
	* tree-phinodes.c (create_phi_node): Return gimple.
	Update all callers.
	(add_phi_args): Change PHI argument to gimple.  Update all
	callers.
	(remove_phi_node): Call gimple_remove.
	(phi_reverse): Remove.  Update all users.
	* tree-ssa-alias-warnings.c: Disable.
	* input.h (IS_LOCATION_EMPTY): Fix comparison of LOCATION_LINE.
	* fold-const.c: Include gimple.h.
	(fold_undefer_overflow_warnings): Change type of argument STMT to
	gimple.  Update all users.
	* cfghooks.h (struct cfg_hooks)<can_merge_blocks_p>: Change
	arguments to basic_block.  Update all users.
	* tree-gimple.c (get_gimple_rhs_class): Change argument to
	enum tree_code.  Update all users.  Move calls to
	is_gimple_lvalue and is gimple_val...
	(is_gimple_formal_tmp_rhs): ... here.
	* tree-ssa-ccp.c (fold_stmt_r): Enable.
	(fold_stmt): Enable.
	(fold_stmt_inplace): Enable.  Adapt to tuples.
	* ipa-pure-const.c (analyze_function): Disable.
	* tree-ssa-propagate.c (get_rhs): Adapt to tuples.  Update all
	users.
	* gimple-dummy.c (ssa_operands_active): Remove dummy function.
	(remove_stmt_from_eh_region, create_phi_node, add_phi_arg,
	substitute_in_loop_info, release_defs, push_stmt_changes,
	pop_stmt_changes, replace_exp): Add dummy functions.
	* predict.c: Disable.
	* gimple-iterator.c: Include tm.h and tree-flow.h
	(gsi_delink): Remove.  Update all users.
	(update_modified_stmt): Move from tree-cfg.c.
	(gsi_insert_before): New.
	(gsi_insert_seq_before): New.
	(gsi_insert_after): New.
	(gsi_insert_seq_after): New.
	(gsi_for_stmt): New.
	(gsi_move_after): New.
	(gsi_move_before): New.
	(gsi_move_to_bb_end): New.
	* gimple-iterator.h (gsi_remove): New.
	* tree-eh.c (add_stmt_to_eh_region_fn): Add comment
	(add_stmt_to_eh_region): Likewise.
	(remove_stmt_from_eh_region_fn): Likewise.
	(remove_stmt_from_eh_region): Likewise.
	(lookup_stmt_eh_region_fn): Likewise.
	(lookup_stmt_eh_region): Likewise.
	(tree_could_throw_p): Likewise.
	(stmt_can_throw_internal): Likewise.
	(tree_can_throw_external): Likewise.
	* gimple-pretty-print.c (op_gimple_cond): Remove.  Update all
	users.
	* tree-affine.c (tree_to_aff_combination_expand): Disable.
	* tree-flow-inline.h (op_iter_init_vdef): Call gimple_code
	instead of TREE_CODE.
	* gimplify.c (gimplify_cond_expr): Use enum tree_code instead
	of enum gimple_cond as the subcode for GIMPLE_COND.
	Do not switch around the conditional when the then clause is empty.
	(tree_to_gimple_tuple): Remove.  Update all users.
	(gimplify_omp_for):
	(force_gimple_operand_gsi): Rename from force_gimple_operand_bsi.  Update all users.
	* tree-dfa.c (find_referenced_vars): Disable.
	(collect_dfa_stats): Likewise.
	(collect_dfa_stats_r): Likewise.
	* cfgexpand.c: Disable.
	* tree-mudflap.c: Disable.
	* print-tree.c: Include diagnostic.h.
	(print_node): Call print_gimple_stmt when printing SSA_NAMEs.
	* lambda-code.c: Disable.
	* tree-profile.c (tree_init_edge_profiler): Disable.
	(tree_gen_edge_profiler): Disable.
	* tree-flow.h (block_stmt_iterator): Remove.  Update all users.
	(const_block_stmt_iterator): Likewise.
	* Makefile.in (print-tree.o): Add dependency on $(DIAGNOSTIC_H).
	(gimple-iterator.o): Add dependency on $(TREE_FLOW_H) and
	value-prof.h.
	(gimple.o): Likewise.
	(fold-const.o): Add dependency on $(GIMPLE_H).
	* gimple.c: Include tm.h, hard-reg-set.h, basic-block.h,
	tree-flow.h and value-prof.h.
	(build_gimple_with_ops): Do not allocate operands if NUM_OPS == 0.
	(build_gimple_return): Remove argument RESULT_DECL_P.  Update
	all users.
	(build_gimple_cond): Use enum tree_code instead of enum
	gimple_cond as the subcode.  Update all users.
	(gimple_cond_invert): Remove.  Update all users.
	(walk_gimple_seq): Add arguments CALLBACK_STMT and
	CALLBACK_OP.  Update all users.
	(walk_gimple_asm): Likewise.
	(walk_gimple_stmt): Likewise.
	(gimple_remove): New.
	(gimple_seq_reverse): New.
	(set_gimple_bb): New.
	* gimple.h (gimple_statement_base): Split field 'flags' into
	fields 'subcode' and 'flags'.  Update all users.
	(gimple_statement_with_ops): Rename field 'base' to
	'gsbase'.  Update all users.
	(gimple_statement_omp): Likewise.
	(gimple_statement_bind): Likewise.
	(gimple_statement_catch): Likewise.
	(gimple_statement_eh_filter): Likewise.
	(gimple_statement_phi): Likewise.
	(gimple_statement_resx): Likewise.
	(gimple_statement_try): Likewise.
	(gimple_statement_omp_parallel): Likewise.
	(enum gimple_cond): Remove.  Update all users.
	(GIMPLE_NO_WARNING): Define.
	(set_gimple_flags): Assert that FLAGS fits in 8 bits.
	(add_gimple_flag): Likewise.
	(set_gimple_subcode): New.  Use instead of set_gimple_flags
	everywhere.
	(gimple_subcode): New.  Use instead of gimple_flags
	everywhere.
	(gimple_no_warning_p): New.
	(gimple_cond_set_code): New.
	(gimple_cond_make_false): New.
	(gimple_cond_make_true): New.
	(gimple_phi_num_args): Rename from gimple_phi_nargs.  Update
	all users.
	* tree-cfg.c (build_gimple_cfg): Return immediately.
	(set_bb_for_stmt): Remove.  Move functionality to
	set_gimple_bb.  Update all users.
	(factor_computed_gotos):
	(bsi_for_stmt): Remove.
	(bsi_insert_before): Remove.
	(bsi_insert_seq_before): Remove.
	(bsi_insert_after): Remove.
	(bsi_insert_seq_after): Remove.
	(bsi_remove): Remove.
	(bsi_move_after): Remove.
	(bsi_move_before): Remove.
	(bsi_move_to_bb_end): Remove.
	(bsi_replace): Remove.
	(tree_verify_flow_info): Adapt to tuples.
	(tree_make_forwarder_block): Likewise.
	(tree_try_redirect_by_replacing_jump): Likewise.
	(tree_redirect_edge_and_branch): Likewise.
	(tree_purge_dead_eh_edges): Likewise.
	(gimple_cfg_hooks): Enable some hooks.
	* tree-ssanames.c (make_ssa_name): Change type of STMT to
	gimple.  Update all users.
	* tree-ssa-operands.c (ssa_operands_active): Enable.

2007-08-31  Diego Novillo  <dnovillo@google.com>

	* tree-gimple.c (is_gimple_addressable): Tidy.
	* Makefile.in (tree-ssa-structalias.o): Disable dependency on
	GTY header file.
	(tree-ssa-propagate.o): Likewise.
	(tree-phinodes.o): Likewise.
	(tree-scalar-evolution.o): Likewise.
	(tree-vect-generic.o): Likewise.
	* gimple.h (struct gimple_statement_phi): Change type of
	fields 'capacity' and 'nargs' to size_t.
	Update all users.
	* tree-cfg.c (verify_gimple_unary_expr): Remove.  Update all
	users.
	(verify_gimple_binary_expr): Remove.  Update all users.
	(verify_types_in_gimple_min_lval): Rename from
	verify_gimple_min_lval.
	(verify_types_in_gimple_reference): Rename from
	verify_gimple_reference.
	(verify_gimple_tree_expr): Remove.
	Move checks to verify_types_in_gimple_assign.
	(verify_types_in_gimple_call): Rename from verify_gimple_call.
	(verify_types_in_gimple_cond): Rename from verify_gimple_cond.
	(verify_types_in_gimple_assign): Rename from verify_gimple_assign.
	(verify_types_in_gimple_switch): Rename from verify_gimple_switch.
	(verify_types_in_gimple_phi): New.
	verify_types_in_gimple_return): Rename from
	verify_gimple_return.
	(verify_types_in_gimple_stmt): Rename from verify_gimple_stmt.
	(verify_types_in_gimple_seq): Rename from verify_gimple_seq.

2007-08-30  Chris Matthews  <chrismatthews@google.com>
	    Diego Novillo  <dnovillo@google.com>

	* gimplify.c (gimplify_body): Call verify_gimple_seq if
	ENABLE_TYPES_CHECKING is set.
	* gimple.h (is_gimple_omp): New.
	* tree-cfg.c (verify_gimple_tree_expr): Rename from
	verify_gimple_expr.
	Verify tree nodes that should disappear after conversion to
	GIMPLE.
	Do not handle COND_EXPR, CALL_EXPR.
	(verify_gimple_modify_stmt): Remove.
	(verify_gimple_call): New.
	(verify_gimple_cond): New.
	(verify_gimple_assign): New.
	(verify_gimple_return): New.
	(verify_gimple_switch): New.
	(verify_gimple_stmt):  Change input argument to type gimple.
	Call new verifiers.
	(verify_gimple_seq): Rename from verify_gimple_1.

2007-08-30  Diego Novillo  <dnovillo@google.com>

	* gimple-low.c (gimple_try_catch_may_fallthru): Call
	gimple_code instead of gimple_flags.
	* gimple.c (set_gimple_body): Use gimple_seq instead of gimple
	when accessing vector gimple_bodies_vec.
	(gimple_body): Likewise.
	(gimple_assign_copy_p): New.
	* gimple.h (enum gimple_try_kind): New.
	(GIMPLE_TRY_CATCH): Move inside enum gimple_try_kind.
	(GIMPLE_TRY_FINALLY): Likewise.
	(gimple_assign_copy_p): Declare.
	(gimple_assign_rhs_code): New.
	Update callers that used to call gimple_flags.
	(gimple_cond_code): New.
	Update callers that used to call gimple_flags.
	(gimple_try_kind): New.
	(gimple_nop_p): Tidy comment.
	* gimple-pretty-print.c (dump_unary_rhs): New.
	(dump_gimple_assign): Call it.

2007-08-30  Diego Novillo  <dnovillo@google.com>

	* gimplify.c (gimplify_cond_expr): When gimplifying a ?: call
	gimplify_stmt with the expression just built instead of the
	original expression.
	Use the correct labels when calling build_gimple_cond.


2007-08-30  Diego Novillo  <dnovillo@google.com>

	* tree-vrp.c: Disable.
	* tree-loop-linear.c: Disable.
	* tree-into-ssa.c: Disable.
	* tree-ssa-loop-im.c: Disable.
	* tree-complex.c: Disable.
	* cgraphbuild.c: Disable most functions.
	* tree-ssa-threadupdate.c: Disable.
	* tree-ssa-loop-niter.c: Disable.
	* tree-pretty-print.c: Disable.
	* tree-ssa-loop-unswitch.c: Disable.
	* tree-ssa-loop-manip.c: Disable.
	* value-prof.c: Disable.
	* tree-tailcall.c: Disable.
	* tree-ssa-loop-ch.c: Disable.
	* tree-scalar-evolution.c: Disable.
	* tree-phinodes.c: Disable.
	* omp-low.c: Disable.
	* tree-ssa-dse.c: Disable.
	* ipa-reference.c: Disable.
	* tree-ssa-uncprop.c: Disable.
	* tree-ssa-sccvn.c: Disable.
	* cgraphunit.c (verify_cgraph_node): Disable basic block traversal.
	* tree-ssa-copyrename.c: Disable.
	* tree-ssa-ccp.c: Disable most functions.
	* tree-ssa-loop-ivopts.c: Disable.
	* tree-stdarg.c: Disable.
	* tree-ssa-math-opts.c: Disable.
	* tree-ssa-dom.c: Disable most functions.
	* tree-nrv.c: Disable.
	* tree-ssa-propagate.c: Disable.
	* gimple-dummy.c: New file.
	* tree-ssa-alias.c: Disable most functions.
	* tree-ssa-sink.c: Disable.
	* expr.c (expand_expr_real): Disable call to
	lookup_stmt_eh_region.
	* tree-ssa-loop-ivcanon.c: Disable.
	* predict.c (strip_builtin_expect): Disable.
	(tree_predict_by_opcode): Disable.
	(return_prediction): Disable.
	(apply_return_prediction): Disable.
	(tree_bb_level_predictions): Disable.
	(tree_estimate_probability): Disable.
	(predict_paths_leading_to): Disable.
	* gimple-iterator.c (gsi_replace): Mark unused arguments with
	ATTRIBUTE_UNUSED.
	* tree-ssa-ifcombine.c: Disable.
	* matrix-reorg.c: Disable.
	* c-decl.c (c_gimple_diagnostics_recursively): Disable call to
	diagnose_omp_structured_block_errors.
	* tree-eh.c: Disable most functions.
	* tree-vectorizer.c: Disable.
	* tree-vectorizer.h (nested_in_vect_loop_p): Disable.
	* ipa-type-escape.c: Disable.
	* tree-if-conv.c: Disable.
	* profile.c: Disable.
	* tree-data-ref.c: Disable.
	* tree-flow-inline.h (bsi_start): Set bsi.gsi to NULL if the
	block is invalid.
	(bsi_last): Likewise.
	(op_iter_next_use): Disable call to PHI_ARG_DEF_PTR.
	* tree-vect-analyze.c: Disable.
	* gimplify.c (gimple_conditional_context): Disable.
	(gimple_push_cleanup): Disable.
	(gimplify_omp_parallel): Disable calls to
	push_gimplify_context and pop_gimplify_context.
	* tree-ssa-phiopt.c: Disable.
	* calls.c (emit_call_1): Disable calls to lookup_stmt_eh_region.
	(expand_call): Likewise.
	(emit_library_call_value_1): Initialize low_to_save and
	high_to_save.
	* tree-ssa-coalesce.c: Disable.
	* tree-dfa.c (make_rename_temp): Disable call to
	mark_sym_for_renaming.
	(find_new_referenced_vars_1): Likewise.
	(collect_dfa_stats): Disable CFG iteration.
	(collect_dfa_stats_r): Disable.
	(mark_symbols_for_renaming): Disable.
	* cfgexpand.c (maybe_dump_rtl_for_tree_stmt): Disable.
	(label_rtx_for_bb): Disable.
	(expand_gimple_cond_expr): Disable.
	(expand_gimple_tailcall): Disable.
	(expand_gimple_basic_block): Disable.
	* tree-cfgcleanup.c: Disable.
	* tree-ssa-pre.c: Disable.
	* tree-ssa-live.c: Disable.
	* tree-sra.c: Disable most functions..
	* tree-predcom.c: Disable.
	* tree-mudflap.c: Disable.
	* ipa-prop.c: Disable.
	* tree-ssa-copy.c (may_propagate_copy): Disable.
	(propagate_value): Disable.
	(execute_copy_prop): Disable.
	(do_copy_prop): Disable.
	(store_copy_prop): Disable.
	* tree-ssa-forwprop.c: Disable.
	* tree-ssa-dce.c: Disable.
	* tree-vect-patterns.c: Disable.
	* tree-ssa-ter.c: Disable.
	* tree-ssa.c: Disable.
	* lambda-code.c: Disable.
	* tree-ssa-loop-prefetch.c: Disable.
	* tree-inline.c: Disable most functions.
	* tree-optimize.c (execute_fixup_cfg_pre_ipa): Disable.
	(execute_fixup_cfg): Disable.
	(execute_cleanup_cfg_post_optimizing): Disable.
	(execute_fixup_cfg): Disable.
	* tree-vect-transform.c: Disable.
	* tree-object-size.c: Disable.
	* tree-outof-ssa.c: Disable.
	* cfgloop.c (find_subloop_latch_edge_by_profile): Disable.
	(find_subloop_latch_edge_by_ivs): Disable.
	* tree-profile.c: Disable most functions.
	* c-gimplify.c (add_block_to_enclosing): Disable.
	* tree-vect-generic.c: Disable.
	* tree-flow.h (struct function_ann_d): Disable field
	reference_vars_info.
	* Makefile.in: Force -Werror even during stage 1.
	(OBJS-common): Add gimple-dummy.o.
	(GTFILES): Remove tree-scalar-evolution.c,
	tree-ssa-propagate.c, tree-vect-generic.c,
	tree-ssa-structalias.h, tree-ssa-structalias.c,
	ipa-reference.h, omp-low.c, tree-phinodes.c, ipa-reference.c
	* tree-ssa-structalias.c: Disable.
	* tree-cfg.c: Disable most functions.
	* passes.c (finish_optimization_passes): Disable call to
	end_branch_prob.
	(init_optimization_passes): Disable the registration of
	several passes.
	(execute_function_todo): Disable calls to update_ssa and
	need_ssa_update_p.
	* tree-ssa-reassoc.c: Disable.
	* tree-ssanames.c: Disable.
	* tree-ssa-threadedge.c: Disable.
	* tree-ssa-operands.c: Disable.

2007-08-29  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-operands.h (pop_stmt_changes, push_stmt_changes):
	Argument is gimple.
	(struct ssa_operand_iterator_d): Member phi_stmt is gimple.
	* value-prof.c (gimple_add_histogram_value): Adjust for tuples.
	(gimple_duplicate_stmt_histograms): Same.
	* value-prof.h (gimple_add_histogram_value): Same.
	(gimple_duplicate_stmt_histograms): Same.
	* tree-flow-inline.h (clear_and_done_ssa_iter): Same.
	(op_iter_init): Same.
	(op_iter_init_phiuse): Same.
	* tree-flow.h (stmt_references_memory_p): Same.
	* tree-cfg.c (tree_can_merge_blocks_p): Same.
	(remove_bb): Same.
	(find_taken_edge): Same.
	(tree_cfg2vcg): Same.
	(first_stmt): Same.
	(last_stmt): Same.
	(bsi_move_after): Same.
	(bsi_move_before): Same.
	(tree_find_edge_insert_loc): Same.
	Remove code handling a GIMPLE_MODIFY_STMT inside a RETURN_EXPR.
	(delete_tree_cfg_annotations): Remove code to remove annotations.
	* tree-ssa-operands.c (struct scb_d): Stmt_p is a gimple *.
	(push_stmt_changes): Adjust for tuples.
	(mark_difference_for_renaming): Same.
	(pop_stmt_changes): Same.
	(stmt_references_memory_p): Same.

2007-08-29  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-operands.h: Remove DEF_OPS, USE_OPS, VUSE_OPS,
	VDEF_OPS, LOADED_SYMS, STORED_SYMS.
	* tree-pretty-print.c (dump_generic_node): Adjust accordingly.
	(dump_vops): use gimple_v*_ops.  Adjust accordingly.
	* gimple.def: Add to comment.
	* tree-ssa-alias.c (create_structure_vars): Adjust for tuples.
	* tree-flow-inline.h (op_iter_init): Make stmt gimple.  Use
	gimple_*_ops functions.
	(op_iter_init_use): Make stmt gimple.
	(op_iter_init_def): Same.
	(op_iter_init_vdef): Same.
	(single_ssa_tree_operand): Same.
	(single_ssa_use_operand): Same.
	(single_ssa_def_operand): Same.
	(zero_ssa_operands): Same.
	(num_ssa_operands): Same.
	(compare_ssa_operands_equal): Make stmt[12] gimple.
	(link_use_stmts_after): Adjust for tuples.
	* tree-ssa-structalias.c (update_alias_info): Use
	gimple_stored_syms and gimple_loaded_syms.
	* gimple.h (gimple_has_mem_ops): New.
	(gimple_def_ops): New.
	(set_gimple_def_ops): New.
	(gimple_use_ops): New.
	(set_gimple_use_ops): New.
	(gimple_vuse_ops): New.
	(set_gimple_vuse_ops): New.
	(gimple_vdef_ops): New.
	(set_gimple_vdef_ops): New.
	(gimple_loaded_syms): New.
	(gimple_stored_syms): New.
	* tree-ssa-operands.c (finalize_ssa_defs): Adjust for tuples.
	(copy_virtual_operands): Same.
	(swap_tree_operands): Same.

2007-08-28  Aldy Hernandez  <aldyh@redhat.com>

	* Revert the parts of Kaveh's constification patch.that duplicate
	API calls.

2007-08-27  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @127831.
	
	* configure.ac (ACX_PKGVERSION): Update revision merge string.
	* configure: Regenerate.
	
2007-08-25  Diego Novillo  <dnovillo@google.com>

	* tree.c (build_gimple_modify_stmt_stat): Add depecrate note.
	* omp-low.c (scan_omp_1): Disable.
	(scan_omp): Likewise.
	(lower_omp_for): Likewise.
	(lower_omp_parallel): Likewise.
	(lower_omp_1): Likewise.
	(lower_omp): Likewise.
	(diagnose_sb_1): Likewise.
	(diagnose_sb_2): Likewise.
	(diagnose_omp_structured_block_errors): Likewise.
	* tree-gimple.h (_TREE_GIMPLE_H): Rename from _TREE_SIMPLE_H.
	(gimplify_body): Return the new GIMPLE body.
	(struct walk_stmt_info): Move to gimple.h.
	* gimple-low.c (lower_function_body): Assert that the function
	body is a single GIMPLE_BIND statement.
	Create a new gimple sequence to lower the existing body.
	Replace the function body with the new lowered sequence.
	(pass_lower_cf): Enable GIMPLE lowering.
	(lower_omp_directive): Disable.
	(lower_stmt): Do not call lower_omp_directive.
	(gimple_stmt_may_fallthru): Factor out of ...
	(gimple_seq_may_fallthru): ... here.
	* gimple-iterator.c (gsi_replace): New.
	* gimple-iterator.h (gsi_replace): Declare.
	* gimple-pretty-print.c: Do not include gimple-iterator.h
	* gimplify.c (gimplify_asm_expr): Tidy.
	Store the whole TREE_LIST node in the inputs and outputs vectors.
	(gimple_push_cleanup): Disable completely.
	(gimplify_body): Return a GIMPLE_BIND holding the gimplified
	body.
	Update all users.
	(gimplify_function_tree): Create a GIMPLE sequence to hold
	the gimplified body.
	* tree-flow.h (gimple_stmt_may_fallthru): Declare.
	* Makefile.in (GIMPLE_H): Add gimple-iterator.h.

2007-08-25  Diego Novillo  <dnovillo@google.com>

	* tree-nested.c: Re-implement to use GIMPLE tuples.
	(init_tmp_var_with_call): New.
	(init_tmp_var): Adapt to GIMPLE tuples.
	(save_tmp_var): Likewise.
	(convert_nl_goto_receiver): Likewise.
	(finalize_nesting_tree_1): Likewise.
	(gsi_gimplify_val): Likewise.
	Rename from tsi_gimplify_val.  Update all users.
	(walk_asm_expr): Remove.
	(walk_stmts): Remove.
	(walk_body): Call walk_gimple_seq.
	Add new argument callback_op.  Update all users.
	(walk_function): Add argument callback_op.  Update all users.
	(convert_nonlocal_reference_op): Rename from
	convert_nonlocal_omp_reference.  Update all users.
	(convert_nonlocal_reference_stmt): New.  Handle GIMPLE
	statements that used to be tree nodes.
	(convert_local_reference_op): Rename from
	convert_local_reference.  Update all users.
	(convert_local_reference_stmt): New.  Handle GIMPLE statements
	that used to be tree nodes.
	(convert_nl_goto_reference): Convert to walk_stmt_fn callback.
	Update all users.
	(convert_tramp_reference_op): Rename from
	convert_tramp_reference.  Update all users.
	(convert_tramp_reference_stmt): New.  Handle GIMPLE statements
	that used to be tree nodes.
	(convert_gimple_call): Rename from convert_call_expr.  Convert
	to be a walk_stmt_fn callback.
	* gimple.c (gimple_seq_add): Rename from gimple_add.  Update
	all users.
	(walk_gimple_seq): Rename from walk_seq_ops.  Update all
	users.
	(walk_gimple_stmt): Rename from walk_tuple_ops.  Update all
	users.
	Use two callback functions one for statements and another for
	operands.  If either is NULL do not invoke it.
	Allow callbacks to replace operands.
	(WALKIT): Remove.
	(walk_gimple_asm): New.
	* gimple.h: Include ggc.h
	(gimple_seq_alloc): New.  Use everywhere a GIMPLE sequence is
	allocated.
	(gimple_op_ptr): New.
	(gimple_call_arg_ptr): New.
	(gimple_catch_types_ptr): New.
	(gimple_eh_filter_types_ptr): New.
	(gimple_omp_critical_name_ptr): New.
	(gimple_omp_for_clauses_ptr): New.
	(gimple_omp_for_index_ptr): New.
	(gimple_omp_for_initial_ptr): New.
	(gimple_omp_for_final_ptr): New.
	(gimple_omp_for_incr_ptr): New.
	(gimple_omp_parallel_clauses_ptr): New.
	(gimple_omp_parallel_child_fn_ptr): New.
	(gimple_omp_parallel_data_arg_ptr): New.
	(gimple_omp_single_clauses_ptr): New.
	(gimple_omp_sections_clauses_ptr): New.
	(walk_stmt_fn): New type.
	(struct walk_stmt_info): Move from tree-gimple.h.
	Rename field callback to callback_op.
	Add new field callback_stmt.
	Replace field tsi with gsi of type gimple_stmt_iterator.
	(walk_gimple_seq): Declare.
	(walk_gimple_stmt): Declare.
	* tree-cfg.c (execute_build_cfg): Do not call
	build_gimple_cfg.
	(pass_build_cfg): Enable.
	Disable TODO_verify_stmts and TODO_cleanup_cfg.

2007-08-22  Aldy Hernandez  <aldyh@redhat.com>

	* tree-phinodes.c (reserve_phi_args_for_new_edge): Comment out
	call to phi_nodes_ptr.
	(remove_phi_node): Same.
	* tree-flow-inline.h (get_lineno): Work with empty statements or
	empty locations.
	(phi_nodes_ptr): Remove.
	(phi_arg_index_from_use): Adjust for tuples.
	(bsi_stmt_ptr): Add ATTRIBUTE_UNUSED.
	(op_iter_init): Remove assertion.
	(next_imm_use_stmt): Change NULL_TREE to NULL.
	* tree-dfa.c (mark_symbols_for_renaming): Adjust for tuples.
	* tree-flow.h: Remove bb_for_stmt prototype.
	(mark_symbols_for_renaming): Make argument gimple.

2007-08-22  Aldy Hernandez  <aldyh@redhat.com>

	Change all instances of bb_for_stmt to gimple_bb throughout.

	* gimple.h (gimple_omp_parallel_combined_p): New.
	* tree-ssa-operands.h (update_stmt_operands): Argument is now
	gimple.
	* tree-ssa-threadupdate.c (rederiction_block_p): Use gimple_nop_p
	instead of IS_EMPTY_STMT.
	* tree-ssa-loop-niter.c: Disable use of COND_EXPR_COND.
	* tree-pretty-print.c (dump_bb_header): Adjust for tuples.
	* cgraph.c (cgraph_add_new_function): Rename
	tree_register_cfg_hooks to gimple_register_cfg_hooks.
	* value-prof.c (set_histogram_value): Stmt type is now gimple.
	(gimple_histogram_value): Same.
	(gimple_remove_histogram_value): Same.
	(gimple_remove_stmt_histograms): Same.
	* tree.h (struct ssa_use_operand_d): Same.
	* value-prof.h (struct histogram_value_t): Same.
	Change gimple_*histogram* prototypes to use gimple instead of
	tree.
	* ipa-cp.c (ipcp_insert_stage): Rename tree_register_cfg_hooks to
	gimple_register_cfg_hooks.
	* cfghooks.c (gimple_register_cfg_hooks): Rename from
	tree_register_cfg_hooks.  Initialize cfg_hooks to gimple_cfg_hooks.
	(current_ir_type): Rename tree_cfg_hooks to gimple_cfg_hooks.
	* input.h (IS_LOCATION_EMPTY): New.
	* cfghooks.h: Rename tree_cfg_hooks to gimple_cfg_hooks.  Rename
	tree_register_cfg_hooks to gimple_register_cfg_hooks.
	* omp-low.c (determine_parallel_type): Adjust for tuples.
	(expand_omp_parallel): Rename bb_stmt_list to bb_seq.
	(expand_omp_for_generic): Call gimple_omp_return_nowait_p.
	(expand_omp_for_static_nochunk): Same.
	(expand_omp_sections): Call gimple_omp_section_last_p.
	(expand_omp_single): Comment out call to find_omp_clause.
	Call gimple_omp_return_nowait_p.
	* cgraphunit.c: Rename tree_register_cfg_hooks to
	gimple_register_cfg_hooks.
	* tree-ssa-propagate.c: Comment out non working code.
	* matrix-reorg.c (matrix_reorg): Rename tree_register_cfg_hooks to
	gimple_register_cfg_hooks.
	* tree-eh.c (add_stmt_to_eh_region_fn): Change `t' type to gimple.
	Adjust accordingly.
	(add_stmt_to_eh_region): Same.
	(remove_stmt_from_eh_region_fn): Same.
	(remove_stmt_from_eh_region): Same.
	(lookup_stmt_eh_region_fn): Same.
	(lookup_stmt_eh_region): Same.
	(make_eh_edges): Adjust for tuples.
	(stmt_can_throw_internal): Rename from tree_can_throw_internal.
	Adjust for tuples.
	(maybe_clean_or_replace_eh_stmt): Arg types are now gimple.
	* tree-vectorizer.c: Rename tree_register_cfg_hooks to
	gimple_register_cfg_hooks.
	* tree-if-conv.c (combine_blocks): Adjust for tuples.
	* profile.c (branch_prob): Same.
	* tree-flow-inline.h (bb_for_stmt): Remove.
	(get_lineno): Adjust for tuples.
	(noreturn_call_p): Same.
	(mark_stmt_modified): Same.
	(update_stmt): Same.
	(update_stmt_if_modified): Same.
	(stmt_modified_p): Same.
	(link_imm_use_stmt): Same.
	(relink_imm_use_stmt): Same.
	(single_imm_use): Same.
	(gimple_phi_arg_def): New.
	(gimple_phi_arg_edge): New.
	(phi_nodes): Adjust for tuples.
	(phi_nodes_ptr): Same.
	(set_phi_nodes): Same.
	(bb_seq): Rename from bb_stmt_list and adjust for tuples.
	(set_bb_seq): Rename from set_bb_stmt_list and adjust for tuples.
	(bsi_start): Adjust for tuples.
	(bsi_after_labels): Adjust for tuples.
	(bsi_last): Same.
	(bsi_next): Same.
	(bsi_prev): Same.
	(bsi_stmt): Same.
	(bsi_stmt_ptr): Same.
	(loop_containing_stmt): Same.
	(delink_stmt_imm_use): Same.
	(first_imm_use_stmt): Same.
	(next_imm_use_stmt): Same.
	* gimplify.c (force_gimple_operand_bsi): Same.
	* coretypes.h (const_gimple): New.
	* tree-ssa-phiopt.c (empty_block_p): Call gimple_nop_p.
	(conditional_replacement): Comment out COND_EXPR_COND.
	(value_replacement): Comment out COND_EXPR_COND.
	(minmax_replacement): Same.
	(abs_replacement): Same.
	* except.h (*eh_region*): Change trees to gimple.
	(struct throw_stmt_node): Change stmt type to gimple.
	* cfgexpand.c (label_rtx_for_bb): Adjust for tuples.
	(expand_gimple_cond_expr): Same.
	(expand_gimple_basic_block): Same.
	* tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Same.
	* tree-ssa-pre.c (realify_fake_stores): Comment out non working
	code.
	* tree-ssa-forwprop.c (propagate_with_phi): Rename
	tree_can_throw_internal stmt_can_throw_internal.
	* tree-inline.c (copy_edges_for_bb): Rename
	tree_can_throw_internal to stmt_can_throw_internal.
	(initialize_cfun): Same.
	(copy_cfg_body): Same.
	(gimple_expand_calls_inline): Same.
	(make_nonlocal_label_edges): Rename tree_can_make_abnormal_goto to
	stmt_can_make_abnormal_goto.
	* tree-optimize.c (tree_lowering_passes): Rename
	tree_register_cfg_hooks to gimple_register_cfg_hooks.
	(tree_rest_of_compilation): Same.
	* tree-flow.h (struct gimple_df): Make modified_noreturn_calls a
	vector of gimple types.
	Adjust prototypes for tuples.
	(struct block_stmt_iterator): Make iterator a gimple iterator.
	(enum bsi_iterator_update): Remove BSI_CHAIN_START and
	BSI_CHAIN_END.
	* Makefile.in (tree-cfg.o): Depend on GIMPLE_H.
	(GTFILES): Move gimple.[hc] entries before tree-flow.h.
	* basic-block.h (struct edge_def): Make goto_locus of type
	location_t.
	(union basic_block_il_dependent): Adjust for tuples.
	(gimple_bb_info): Rename from tree_bb_info.  Adjust for tuples.
	* tree-cfg.c: Include gimple.h.
	Adjust prototypes for tuples.
	(build_gimple_cfg): Rename from build_tree_cfg.  Adjust for
	tuples.
	(execute_build_cfg): Rename build_tree_cfg call to
	build_gimple_cfg.
	(factor_computed_gotos): Adjust for tuples.
	(make_blocks): Same.
	(create_bb): Same.
	(fold_cond_expr_cond): Same.
	(make_edges): Same.
	(make_cond_expr_edges): Same.
	(make_switch_expr_edges): Same.
	(make_goto_expr_edges): Same.
	(cleanup_dead_labels): Same.
	(group_case_labels): Same.
	(tree_can_merge_blocks_p): Same.
	(replace_uses_by): Same.
	(tree_merge_blocks): Same.
	(is_ctrl): Same.
	(is_ctrl_altering_stmt): Same.
	(computed_goto_p): Same.
	(simple_goto_p): Same.
	(stmt_can_make_abnormal_goto): Rename from
	tree_can_make_abnormal_goto.
	Adjust for tuples.
	(stmt_starts_bb_p): Adjust for tuples.
	(stmt_ends_bb_p): Same.
	(first_stmt): Same.
	(last_stmt): Same.
	(last_and_only_stmt): Same.
	(set_bb_for_stmt): Same.
	(change_bb_for_stmt): Same.
	(bsi_for_stmt): Same.
	(update_modified_stmt): Rename from update_modified_stmts.
	Adjust for tuples.
	Handle only one statement.
	(bsi_insert_before): Adjust for tuples.
	(bsi_insert_after): Same.
	(bsi_insert_seq_before): New.
	(bsi_insert_seq_after): New.
	(bsi_remove): Ajust for tuples.
	(bsi_replace): Same.
	(verify_stmt): Same.
	(gimple_split_block): Rename from tree_split_block.
	Adjust for tuples.
	(tree_purge_dead_abnormal_call_edges): Adjust for tuples.
	(tree_cfg_hooks): Same.
	* tree-ssa-operands.c (update_stmt_operands): Same.

2007-08-22  Aldy Hernandez  <aldyh@redhat.com>

	* Makefile.in (TREE_GIMPLE_H): Depend on GIMPLE_H.
	* gimple-iterator.h: Do not include gimple.h.
	* gimple.h (OMP_SECTION_LAST_FLAG): New.
	(gimple_omp_return_nowait_p): New.
	(gimple_omp_section_last_p): New.
	(gimple_switch_set_num_labels): New.
	(gimple_nop_p): New.
	
2007-08-17  Aldy Hernandez  <aldyh@redhat.com>

	Revert this change:

	2007-08-14  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (gimple_call_flags): Make sure this is a GIMPLE_CALL.
	
2007-08-14  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-iterator.c (gsi_split_seq_after): New.
	(gsi_split_seq_before): New.
	* gimple-iterator.h: Prototype above two functions.
	
2007-08-14  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.h (gimple_has_ops): New.
	(gimple_modified): New.
	(set_gimple_modified): New.
	(gimple_switch_default_label): Call gimple_switch_label.
	(gimple_switch_set_default_label): Call gimple_switch_set_label.

2007-08-14  Aldy Hernandez  <aldyh@redhat.com>

	* gimple.c (gimple_call_flags): Make sure this is a GIMPLE_CALL.
	
2007-08-14  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @127480.

	* version.c (VERSUFFIX): Update.
	
2007-08-09  Diego Novillo  <dnovillo@google.com>

	* gimple-low.c: Document conversion to Low GIMPLE.
	* Makefile.in (gimple.o): Add dependency on gt-gimple.h
	(GTFILES): Add gimple.c.
	* gimple.c (gimple_bodies_vec): New.
	(gimple_bodies_map): Rename from gimple_bodies.
	(gss_for_code): Return GSS_ASM for GIMPLE_ASM.
	(walk_tuple_ops): Handle GSS_ASM like GSS_WITH_OPS.
	(set_gimple_body): Push body into gimple_bodies_vec and create
	a mapping to array index in gimple_bodies_map.
	(gimple_body): Corresponding changes to use gimple_bodies_map
	and gimple_bodies_vec.
	* gimple.h: Create VEC templates for gimple_seq.

2007-08-08  Aldy Hernandez  <aldy@quesejoda.com>

	* gimple-low.c (struct return_statements_t): Declare.
	(struct lower_data): Make return_statements a vector.
	(lower_function_body): Adjust for tuples.
	(pass_lower_cf): Add PROP_gimple_any to properties_required.
	(lower_sequence): Rename from lower_stmt_body.
	Adjust for tuples.
	(lower_omp_directive): Adjust for tuples.
	(lower_stmt): Same.
	(lower_gimple_bind): Rename from lower_bind_expr.
	Adjust for tuples.
	(gimple_try_catch_may_fallthru): New.
	(gimple_seq_may_fallthru): New.
	(lower_gimple_return): Rename from lower_return_expr and adjust
	for tuples.
	(lower_builtin_setjmp): Adjust for tuples.
	* gimple-iterator.c: New.
	* gimple-iterator.h: Include gimple.h.
	(enum gsi_iterator_update): Declare.
	(gsi_link_seq_before): New prototype.
	(gsi_link_before): Same.
	(gsi_link_seq_after): Same.
	(gsi_link_after): Same.
	(gsi_delink): Same.
	* gimplify.c (gimplify_body): Comment out verify_gimple_1 call.
	* tree-flow.h (gimple_seq_may_fallthru): New prototype.
	* Makefile.in (OBJS-common): Add gimple-iterator.o.
	(gimple-iterator.o): New.
	(gimple-pretty-print.o): Do not depend on gimple-iterator.h.
	* gimple.c (set_gimple_prev): Move to gimple.h.
	(set_gimple_next): Same.
	(gimple_call_flags): New.
	* gimple.h (struct gimple_sequence): Add GTY marker.
	(struct gimple_statement_bind): Add block field.
	(set_gimple_prev): New.
	(set_gimple_next): New.
	(gimple_call_flags): Protoize.
	(gimple_call_fndecl): New.
	(gimple_bind_block): New.
	(gimple_bind_set_block): New.


2007-08-08  Diego Novillo  <dnovillo@google.com>

	* gimple.h (GIMPLE_CHECK, GIMPLE_CHECK2, GIMPLE_RANGE_CHECK):
	Do not return the checked statement.  Update all users.
	Enable on compilers other than GCC.

2007-08-07  Chris Matthews  <chrismatthews@google.com>

	* gimple_iterator.h (gsi_start): Changed to produce a pointer instead of
	struct.  Updated clients.
	(gsi_last): Same.
	(gsi_end_p): Changed to operate on a pointer instead of struct.  Updated
	clients.
	(gsi_one_before_end_p): Same.
	(gsi_next): Same.
	(gsi_prev): Same.
	(gsi_stmt): Same.
	
2007-08-07  Diego Novillo  <dnovillo@google.com>

	Merge with mainline @127277.

	* version.c (VERSUFFIX): Update.

2007-08-07  Diego Novillo  <dnovillo@google.com>

	* gimple.h (gimple_call_return): New.
	* gimplify.c (get_tmp_var_for): Call it.

2007-08-02  Chris Matthews  <chrismatthews@google.com>

	* gimplify.c (gimplify_asm_expr): Created new gimple tuple.
	* gimple-pretty-printer.c (dump_gimple_asm): Added function to dump a
	GIMPLE_ASM statement.
	(dump_gimple_stmt): Updated to use the dump_gimple_asm function.
	* gimple.c (gss_for_code): Made asm statements return as with_mem_ops.
	(build_gimple_with_ops): Asm statements are added as a specal case for
	allocation because they have extra fields that are not
	allocated correctly in the current generic op allocator.
	(build_gimple_asm_1): Added a helper function to setup the basics of a
	GIMPLE_ASM tuple.
	(build_gimple_asm_vec): Create a GIMPLE_ASM tuple from vector arguments.
	(build_gimple_asm): Changed to call the new helper function.

2007-08-03  Diego Novillo  <dnovillo@google.com>

	* gimple-pretty-print.c (INDENT): Tidy.
	(dump_binary_rhs): New.
	(dump_gimple_assign): Call it.
	* gimplify.c (gimplify_modify_expr_complex_part): If the value
	is not interesting, nullify *EXPR_P.
	(gimplify_body): Do not add the sequence to the GIMPLE_BIND more
	than once.

2007-08-01  Diego Novillo  <dnovillo@google.com>

	* gimplify.c (gimplify_switch_expr): Remove switch_body_seq_.
	Change switch_body_seq to struct gimple_sequence.
	Adjust all uses.
	Call gimplify_stmt instead of gimplify_statement_list
	(gimplify_to_stmt_list): Remove.
	Update all users.
	* tree-mudflap.c: Include gimple.h
	(mf_decl_cache_locals): Convert to emit GIMPLE.
	(mf_build_check_statement_for): Add FIXME and unreachable
	markers to convert to GIMPLE.
	* Makefile.in (tree-mudflap.o): Depend on $(GIMPLE_H).
	* config/i386/i386.c (ix86_gimplify_va_arg): Adapt to emit
	GIMPLE.

2007-08-01  Diego Novillo  <dnovillo@google.com>

	* gimplify.c (gimplify_switch_expr): Do not call sort_case_labels
	if there are no labels other than 'default'.
	* gimple.h (gimple_num_ops, gimple_op, gimple_set_op): Use
	result of GIMPLE_RANGE_CHECK call.

2007-08-01  Diego Novillo  <dnovillo@google.com>

	* DEV-PHASE: Revert to mainline version.
	* version.c (VERSUFFIX): Add branch name and revision number
	of latest mainline merge.

2007-07-31  Diego Novillo  <dnovillo@google.com>

	Mainline merge (@127100).
	* DEV-PHASE: Updated.

2007-07-31  Diego Novillo  <dnovillo@google.com>

	* dominance.c (free_dominance_info): If there is no CFG,
	do nothing.
	* cfg.c (compact_blocks): Likewise.

2007-07-30  Diego Novillo  <dnovillo@google.com>

	* gimplify.c (get_tmp_var_for): When creating a new temporary
	for a GIMPLE_CALL, use the type returned by the function call
	instead of the type of the function decl.
	* gimple.c (build_gimple_return): Accept NULL and RESULT_DECL
	return values.

2007-07-30  Diego Novillo  <dnovillo@google.com>

	* gimplify.c (gimplify_init_constructor): If both sides
	of the constructor are in GIMPLE form but the assignment
	has not been emitted, emit it.

2007-07-28  Diego Novillo  <dnovillo@google.com>

	* gimplify.c (gimplify_return_expr): Do not create a MODIFY_EXPR
	as return argument
	* gimple.c (build_gimple_return): Assert that the returned value
	is a GIMPLE value.

2007-07-27  Diego Novillo  <dnovillo@google.com>

	* tree-gimple.c (get_gimple_rhs_class): New.
	(is_gimple_formal_tmp_rhs): Call it.
	* tree-gimple.h (enum gimple_rhs_class): New.
	* gimple-iterator.h (gsi_next): Assert that there is nothing
	beyond the end of the sequence.
	(gsi_prev): Assert that there is nothing before the start of
	the sequence.
	* gimplify.c (gimplify_switch_expr): Tidy creation of default label.
	(gimplify_expr): Fix concatenation of internal sequences to PRE_P.
	* gimple.c (get_num_ops_for): Remove.  Update users.
	(build_gimple_assign): Call get_gimple_rhs_class to determine
	how many operands to allocate.
	(gimple_add): Assert that GS does not have previous or next
	statements.
	(gimple_seq_append): Move from gimple.h.

2007-07-27  Aldy Hernandez  <aldy@quesejoda.com>

	* cgraph.c: Fix line wrap.
	* cgraph.h: Same.
	* tree-pass.h (struct tree_opt_pass): Add works_with_tuples_p
	field.
	* cgraphunit.c (cgraph_analyze_functions): Remove check for
	DECL_SAVED_TREE.
	(cgraph_expand_function): Comment out TREE_ASM_WRITTEN assertion.
	* tree-optimize.c (tree_lowering_passes): Comment out call to
	compact_blocks.
	* passes.c (execute_one_pass): Return if pass has not been
	converted to tuples.
	* tree-vrp.c, regrename.c, fwprop.c, tree-into-ssa.c,
	tree-complex.c, see.c, cgraphbuild.c, tracer.c, cgraph.c,
	postreload-gcse.c, postreload.c, tree-ssa-loop-ch.c,
	tree-tailcall.c, tree-pass.h, ipa-cp.c, final.c, omp-low.c,
	tree-ssa-dse.c, ipa-reference.c, tree-ssa-uncprop.c,
	auto-inc-dec.c, reorg.c, tree-ssa-copyrename.c, tree-ssa-ccp.c,
	df-core.c, mode-switching.c, tree-nomudflap.c, modulo-sched.c,
	ipa-pure-const.c, cse.c, web.c, tree-stdarg.c,
	tree-ssa-math-opts.c, tree-ssa-dom.c, tree-nrv.c,
	tree-ssa-alias.c, loop-init.c, gimple-low.c, tree-ssa-sink.c,
	ipa-inline.c, global.c, jump.c, ifcvt.c, predict.c,
	tree-ssa-loop.c, recog.c, dse.c, tree-ssa-ifcombine.c,
	matrix-reorg.c, c-decl.c, tree-eh.c, regmove.c, local-alloc.c,
	function.c, tree-vectorizer.c, gcse.c, ipa-type-escape.c,
	tree-if-conv.c, init-regs.c, ipa.c, tree-ssa-phiopt.c,
	rtl-factoring.c, lower-subreg.c, bt-load.c, tree-dfa.c except.c,
	emit-rtl.c, cfgexpand.c, tree-cfgcleanup.c, cfgcleanup.c,
	tree-ssa-pre.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
	cfglayout.c, tree-ssa-forwprop.c, tree-ssa-dce.c, tree-ssa.c,
	regclass.c, integrate.c, tree-optimize.c, tree-object-size.c,
	combine.c, tree-outof-ssa.c, bb-reorder.c, stack-ptr-mod.c,
	var-tracking.c, tree-profile.c, tree-vect-generic.c, reg-stack.c,
	sched-rgn.c, tree-ssa-structalias.c, tree-cfg.c, passes.c,
	tree-ssa-reassoc.c, combine-stack-adj.c, cfgrtl.c, dce.c,
	tree-ssanames.c: Set works_with_tuples_p field to 0.

2007-07-25  Diego Novillo  <dnovillo@google.com>

	* gimple.c: Use ENABLE_GIMPLE_CHECKING instead of
	ENABLE_TREE_CHECKING.
	(set_gimple_code): New.
	(set_gimple_prev): New.
	(set_gimple_next): New.
	* gimple.h: Use ENABLE_GIMPLE_CHECKING instead of
	ENABLE_TREE_CHECKING.
	(gimple_code): Inline function replacement for GIMPLE_CODE.
	(gimple_flags): Inline function replacement for GIMPLE_SUBCODE_FLAGS.
	(gimple_next): Inline function replacement for GIMPLE_NEXT.
	(gimple_prev): Inline function replacement for GIMPLE_PREV.
	(gimple_locus): Inline function replacement for GIMPLE_LOCUS.
	(gimple_locus_empty_p): Inline function replacement for
	GIMPLE_LOCUS_EMPTY_P.
	(struct gimple_statement_base): Rename field 'subcode_flags'
	to 'flags'.
	(set_gimple_flags): New.
	(gimple_bb): New.
	(set_gimple_bb): New.
	(set_gimple_block): New.
	(set_gimple_locus): New.
	(add_gimple_flag): Rename from gimple_add_subcode_flag.

2007-07-25  Diego Novillo  <dnovillo@google.com>

	* tree-gimple.h (build_gimple_eh_filter_tree): Rename from
	gimple_build_eh_filter_tree.
	* gimple.h (build_gimple_return): Rename from gimple_build_return.
	(build_gimple_assign): Rename from gimple_build_assign.
	(build_gimple_call_vec): Rename from gimple_build_call_vec.
	(build_gimple_call): Rename from gimple_build_call.
	(build_gimple_label): Rename from gimple_build_label.
	(build_gimple_goto): Rename from gimple_build_goto.
	(build_gimple_nop): Rename from gimple_build_nop.
	(build_gimple_bind): Rename from gimple_build_bind.
	(build_gimple_asm): Rename from gimple_build_asm.
	(build_gimple_catch): Rename from gimple_build_catch.
	(build_gimple_eh_filter): Rename from gimple_build_eh_filter.
	(build_gimple_try): Rename from gimple_build_try.
	(build_gimple_phi): Rename from gimple_build_phi.
	(build_gimple_resx): Rename from gimple_build_resx.
	(build_gimple_switch): Rename from gimple_build_switch.
	(build_gimple_switch_vec): Rename from gimple_build_switch_vec.
	(build_gimple_omp_parallel): Rename from gimple_build_omp_parallel.
	(build_gimple_omp_for): Rename from gimple_build_omp_for.
	(build_gimple_omp_critical): Rename from gimple_build_omp_critical.
	(build_gimple_omp_section): Rename from gimple_build_omp_section.
	(build_gimple_omp_continue): Rename from gimple_build_omp_continue.
	(build_gimple_omp_master): Rename from gimple_build_omp_master.
	(build_gimple_omp_return): Rename from gimple_build_omp_return.
	(build_gimple_omp_ordered): Rename from gimple_build_omp_ordered.
	(build_gimple_omp_sections): Rename from gimple_build_omp_sections.
	(build_gimple_omp_single): Rename from gimple_build_omp_single.
	Update all users.

2007-07-24  Chris Matthews  <chrismatthews@google.com>

	* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
	--enable-checking=gimple flag.
	* config.in: Same.
	* configure: Regenerated.
	* gimplify.c (cpt_same_type): Same.
	(gimple_push_condition): Same.
	(gimplify_addr_expr): Same.
	(gimplify_expr): Same.
	(gimplify_body): Same.
	(check_pointer_types_r): Same.

2007-07-24  Diego Novillo  <dnovillo@google.com>

	* gimple.def: Re-organize codes that take tree operands so
	they are consecutive.
	* gsstruct.def (GSS_LABEL, GSS_ASSIGN_BINARY, GSS_ASSIGN_UNARY_REG,
	GSS_ASSIGN_UNARY_MEM, GSS_COND, GSS_GOTO, GSS_SWITCH, GSS_CALL,
	GSS_RETURN): Remove.  Update al users.
	* gimple.c (gss_for_code): New.
	(gimple_statement_structure): Call it.
	(get_num_ops_for): New.
	(gimple_build_with_ops): New.
	(gimple_build_return, gimple_build_call_1, gimple_build_assign,
	gimple_build_cond, gimple_build_label, gimple_build_goto,
	gimple_build_switch_1, ): Call it.
	(gss_for_assign): Remove.  Update all users.
	(gimple_check_failed): Do not assume that subcode is a valid tree
	code.
	(gimple_range_check_failed): New.
	(walk_tuple_ops): Implement in terms of gimple_num_ops and
	gimple_op when dealing with GSS_WITH_OPS and GSS_WITH_MEM_OPS
	statements.
	* gimple.h (struct gimple_statement_with_ops): Add fields 'num_ops'
	and 'op'.
	(struct gimple_statement_label, gimple_statement_assign_binary,
	gimple_statement_assign_unary_reg, gimple_statement_assign_unary_mem,
	gimple_statement_cond, gimple_statement_goto, gimple_statement_switch,
	gimple_statement_call, gimple_statement_return): Remove.
	Update all users.
	(gimple_range_check_failed): Declare.
	(GIMPLE_RANGE_CHECK): Define.
	(gimple_num_ops): New.
	(gimple_op): New.
	(gimple_set_op): New.
	(gimple_assign_rhs1): Rename from gimple_assign_binary_rhs1.
	(gimple_assign_set_rhs1): Rename from gimple_assign_binary_set_rhs1.
	(gimple_assign_rhs2): Rename from gimple_assign_binary_rhs2.
	(gimple_assign_set_rhs2): Rename from gimple_assign_binary_set_rhs2.
	(gimple_assign_unary_rhs): Remove.  Update all users.
	(gimple_assign_unary_set_rhs): Likewise.
	(gimple_switch_num_labels): Rename from gimple_switch_nlabels.
	(gimple_call_fn, gimple_call_lhs, gimple_call_chain,
	gimple_call_set_chain, gimple_call_nargs, gimple_call_arg,
	gimple_call_set_arg, gimple_cond_lhs, gimple_cond_set_lhs,
	gimple_cond_rhs, gimple_cond_set_rhs, gimple_cond_true_label,
	gimple_cond_false_label, gimple_cond_set_true_label,
	gimple_cond_set_false_label, gimple_label_label,
	gimple_label_set_label, gimple_goto_dest,
	gimple_goto_set_dest, gimple_asm_input_op,
	gimple_asm_set_input_op, gimple_asm_output_op,
	gimple_asm_set_output_op, gimple_asm_clobber_op,
	gimple_asm_set_clobber_op, gimple_switch_num_labels,
	gimple_switch_index, gimple_switch_set_index,
	gimple_switch_default_label, gimple_switch_set_default_label,
	gimple_switch_label, gimple_switch_set_label,
	gimple_return_retval, gimple_return_set_retval): Implement
	using the array of operands in field 'with_ops'.
	(gimple_asm_set_ninputs, gimple_asm_set_noutputs,
	gimple_asm_set_nclobbered, gimple_asm_set_string): Remove.
	Update all users.


2007-07-24  Aldy Hernandez  <aldyh@redhat.com>

	* tree.c (get_callee_fndecl): Revert previous change.
	* gimplify.c (gimplify_call_expr): Use result from
	get_callee_fndecl if available.
	* c-common.c (c_warn_unused_result): Do not use
	get_callee_fndecl.
	Add assertion.

2007-07-24  Diego Novillo  <dnovillo@google.com>

	Merge with mainline (@126872)

2007-07-23  Aldy Hernandez  <aldyh@redhat.com>

	* tree.c (get_callee_fndecl): Work when only the CALL_EXPR_FN has
	been passed.
	* c-common.c (c_warn_unused_result): Use get_callee_fndecl.
	
2007-07-23  Aldy Hernandez  <aldyh@redhat.com>

	* c-decl.c: Include gimple.h.
	(c_gimple_diagnostics_recursively): Call c_warn_unused_result with
	tuplified body.
	Exit if -fgimple-only.
	* gimplify.c (gimplify_call_expr): Call gimple_build_call_vec with
	the correct callee.
	* c-gimplify.c (c_genericize): Remove exit.
	* c-common.c: Include gimple.h.
	(c_warn_unused_result): Tuplify.
	* c-common.h (c_warn_unused_result): Protoize.
	* Makefile.in (c-decl.o): Depend on GIMPLE_H.
	(c-common.o): Same.
	* gimple.c (gimple_build_catch): Handler is a sequence.
	Adjust accordingly.
	(gimple_build_eh_filter): Failure is a sequence.
	Adjust accordingly.
	(walk_tuple_ops): case GIMPLE_CATCH: Walk handler as a sequence.
	case GIMPLE_EH_FILTER: Walkder failure as a sequence.
	* gimple.h (gimple_statement_catch): Make handler a sequence.
	(gimple_statement_eh_filter): Make failure a sequence.
	(gimple_build_catch): Make second argument a sequence.
	(gimple_build_eh_filter): Same.
	(gimple_catch_handler): Return a sequence.
	(gimple_catch_set_handler): Make second argument a sequence.
	(gimple_eh_filter_failure): Return a sequence.
	(gimple_eh_filter_set_failture): Make second argument a sequence.

2007-07-20  Aldy Hernandez  <aldyh@redhat.com> 

	* gimplify.c (gimplify_return_expr): Handle an empty ret_expr
	gracefully.

2007-07-19  Aldy Hernandez  <aldyh@redhat.com> 

	* testsuite/gcc.dg/gimple/instrument.c: New.
	* gimplify.c (gimplify_function_tree): Generate tuples for function
	instrumentation.

2007-07-18  Aldy Hernandez  <aldyh@redhat.com> 

	* gimplify.c (gimple_add_tmp_var): Remove abort.  Add comment.
	
2007-07-18  Aldy Hernandez  <aldyh@redhat.com> 

	* gimplify.c (gimple_add_tmp_var): Remove abort.  Add comment.

2007-07-18  Aldy Hernandez  <aldyh@redhat.com> 

	* gimplify.c (gimplify_and_add): Remove unecessary temporary sequence.
	Remove fixme.  Add comment.
	(gimplify_loop_expr): Tuplefy.
	(gimplify_bind_expr): Streamline GIMPLE_TRY_FINALLY tuple.
	(gimplify_expr): Tuplefy TRY_*_EXPR cases.
	* gimple.c: Fix some spacing.
	(gimple_build_try, gimple_omp_build_*): Handle empty sequences.
	(gimple_push): Remove.
	* gimple.h (gimple_push): Remove.

2007-07-18  Aldy Hernandez  <aldyh@redhat.com> 

	* tree-gimple.h (declare_vars): Update arguments.
	* gimplify.c (pop_gimplify_context): Enable call to declare_vars.
	(declare_vars): Convert to use tuples.
	(gimple_add_tmp_var): Same.
	* gimple.h (GIMPLE_BLOCK): New.

2007-07-17  Chris Matthews  <chrismatthews@google.com>

	* gimplify.c (gs_build_eh_filter): Renamed to gs_build_eh_filter_tree
	to avoid name conflict.
	* gimple-pretty-print.c: Renamed to debug_gs_* to debug_gimple_*.
	Updated all users.
	* gimple.h: Renamed all functions with GS and gs prefixes to GIMPLE and
	gimple, and updated users.
	Renamed gs_seq_* functions to gimple_seq_*. Updated all users. 
	* gimple.def: Definitions changed to from GS_* to GIMPLE_*.

2007-07-16  Chris Matthews  <chrismatthews@google.com>

	* gimple.c (gs_build_switch): Changed nlabels to represent total number
	of labels including the default.
	(gs_build_switch_1): Same.
	(walk_tuple_ops): Same.
	* gimple-pretty-print.c (dump_gs_switch): Same.

2007-07-16  Aldy Hernandez  <aldyh@redhat.com> 

	* gimplify.c (gimplify_ctx): Rename current_bind_expr_seq to
	bind_expr_stack and make it a vector.
	(push_gimplify_context): Adjust bind_expr_stack for vectors.
	(pop_gimplify_context): Same.
	(gimple_push_bind_expr): Same.
	(gimple_pop_bind_expr): Same.
	(gimple_current_bind_expr): Same.
	(get_tmp_var_for): Use ``code''.
	(gimplify_bind_expr): Remove comment.
	(gimplify_case_label_expr): Add whitespace.
	* gimple.c (gs_pop): Remove.
	* gimple.h: Define vectors of a gimple type.
	(gs_pop): Remove prototype.
	* Makefile.in (GIMPLE_H): Add vec.h.

2007-07-15  Diego Novillo  <dnovillo@google.com>

	* gimple.c: Rename from gimple-ir.c.
	Update all users.
	* gimple.h: Rename from gimple-ir.h.
	Update all users.

2007-07-15  Diego Novillo  <dnovillo@google.com>

	* gimple-ir.c (gimple_statement_structure): Remove code
	after gcc_unreachable call.
	* gimplify.c (get_tmp_var_for): New.
	(gimplify_call_expr): Call it.

2007-07-14  Aldy Hernandez  <aldyh@redhat.com> 

	* testsuite/gcc.dg/gimple/with_size_expr.c: Check for GS_TRY.
	* Makefile.in (gimple-ir.o): Add diagnostic.h dependency.
	* gimple-pretty-print.c (dump_gs_call): Dump LHS if available.
	(dump_gs_try): New.
	(dump_gimple_stmt): Add case for GS_TRY.
	* gimple-ir.c.  Include diagnostic.h.
	(gs_build_try): Cleanup and eval are sequences.
	Remove catch_p and finally_p arguments.  Add catch_finally argument.
	(gs_omp_build_critical): Body is a gs_seq.
	(gs_omp_build_parallel): Same.
	(gs_omp_build_section): Same.
	(gs_omp_build_master): Same.
	(gs_omp_build_continue): Same.
	(gs_omp_build_ordered): Same.
	(gs_omp_build_sections): Same.
	(gs_omp_build_single): Same.
	(gs_omp_build_for): Body and pre_body is a gs_seq.
	(gs_push): New.
	(gs_pop): New.
	(walk_tuple_ops): Walk GS_TRY tuples eval and cleanups correctly.
	Dump tuple before we ICE.
	* gimple-ir.h (gs_seq_copy): New.
	(struct gimple_statement_try): Eval and cleanups are gs_seq's.
	(gs_bind_set_body): Use gs_seq_copy.
	(gs_try_eval): Return address of eval.
	(gs_try_cleanup): Return address of cleanup.
	(gs_try_set_eval): Use gs_seq_copy.
	(gs_try_set_cleanup): Same.
	(gs_omp_set_body): Same.
	(gs_omp_for_set_pre_body): Same.
	* gimplify.c (struct gimplify_ctx): Rename current_bind_expr to
	current_bind_expr_seq, and make it a sequence.
	(pop_gimplify_context): Adjust for current_bind_expr_seq.
	(gimple_push_bind_expr): Same.
	(gimple_pop_bind_expr): Same.
	(gimple_current_bind_expr): Same.
	(build_stack_save_restore): Generate tuples.
	(gimplify_bind_expr): Same.

2007-07-13  Diego Novillo  <dnovillo@google.com>

	* gimple-ir.c (gs_add): Swap arguments.
	Update all users.
	* gimple-ir.h (gs_seq_append): Likewise.

2007-07-12  Diego Novillo  <dnovillo@google.com>

	* tree.c (create_artificial_label): Move from gimplify.c
	(get_name): Likewise.
	* tree.h (create_artificial_label, get_name): Move
	declarations earlier in the file.
	* diagnostic.h (dump_gimple_stmt, print_gimple_stmt,
	dump_gimple_seq): Rearrange.
	* tree-gimple.h (gimplify_function_tree): Move from tree.h.
	* gimple-pretty-print.c (do_niy): Tidy.
	(maybe_init_pretty_print): Add comment.
	(newline_and_indent): Likewise.
	Remove "gimpleir: " prefix.
	(debug_gimple_stmt): Add comment.
	(dump_gs_seq): Remove.
	(dump_gimple_seq): Add argument SPC.
	Update all users.
	If FLAGS contains TDF_DETAILS, emit "gimpleir:" prefix.
	(dump_gs_cond): If FLAGS contains TDF_DETAILS, emit
	"gimpleir:" prefix.
	(dump_gs_bind): Likewise.
	* function.h (struct function): Remove field 'gimplified'.
	* gimple-ir.c (gimple_bodies): New private variable.
	(set_gimple_body): New.
	(gimple_body): New.
	* gimple-ir.h: Include pointer-set.h.
	Add comment before data structure definitons.
	(set_gimple_body): Declare.
	(gimple_body): Declare.
	* gimplify.c (create_artificial_label): Move to tree.c
	(get_name): Likewise.
	(gimplify_function_tree): Change return type to void.
	Call set_gimple_body after gimplification and nullify
	DECL_SAVED_TREE.
	Update all callers.
	* common.opt (fgimple-only): New option.
	* tree-optimize.c (tree_rest_of_compilation): Do not nullify
	DECL_SAVED_TREE.
	* c-gimplify.c (c_genericize): Restore gimplification logic to
	mainline version.
	If -fgimple-only was given, exit.
	* Makefile.in (GIMPLE_IR_H): Add pointer-set.h
	* tree-cfg.c (execute_build_cfg): Nullify GIMPLE body after
	building the CFG.
	(dump_function_to_file): If DECL_SAVED_TREE is NULL dump the
	GIMPLE body of the function.

2007-07-12  Diego Novillo  <dnovillo@google.com>

	* omp-low.c (lower_regimplify): Use a local GIMPLE sequence to
	hold the result from gimplification.
	* tree-gimple.c (is_gimple_min_val): Reformat.
	* tree-gimple.h (enum fallback_t): Document values.
	(gimplify_expr): Remove IS_STATEMENT argument.
	Update all users.
	* langhooks.c (lhd_gimplify_expr): Likewise.
	* gimplify.c (gimplify_statement_list): If a temporary
	was returned from voidify_wrapper_expr abort to mark the failure.
	(gimplify_expr): Remove argument IS_STATEMENT.
	Update all users.
	Assert that FALLBACK is used with the appropriate GIMPLE_TEST_F
	Restore logic to use internal queue.
	Do not abort if on return from gimplify_call_expr, *EXPR_P has
	a CALL_EXPR.

2007-07-12  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.c (gs_build_switch_1): Allocate one less tree.
	(gs_build_switch_1): Offset labels by one.
	(gs_switch_label): Same.
	(gs_switch_set_label): Same.

2007-07-12  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.c (walk_seq_ops): Rename from walk_tree_seq.
	(walk_tuple_ops): Rename from walk_tree_tuple.
	* gimple-ir.h, gimplify.c, gimple-ir.c: Rename all calls to
	walk_tree_seq and walk_tree_tuple accordingly.

2007-07-12  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.c (gs_build_switch_1): Fix spacing.
	Allocate one more tree.
	(gs_build_switch): Set labels starting at 1.
	(walk_tree_seq): New.
	(walk_tree_tuple): New.
	* gimple-ir.h: Add prototypes for walk_tree_tuple and walk_tree_seq.
	* gimplify.c (check_pointer_types_r): Uncomment.
	(gimplify_body): Walk gimple sequence with check_pointer_types_r.

2007-07-11  Chris Matthews  <chrismatthews@google.com> 

	* tree-pretty-print.c (dump_generic_node): Removed space before default
	label colon.
	* tree.h (sort_case_labels): Moved to gimple-ir.h.
	* gimplify.c (sort_case_labels): Changed to a vector instead of tree
	vector.
	(gimplify_switch_expr): Initial implementation with tuples.
	(gimplify_expr): Changed gimplify_case_label_expr parameter.
	(gimplify_case_label_expr): Added a gs_seq parameter, and put cases in
	that.
	(dump_gimple_stmt): Removed semicolon.
	(dump_gs_label):  Refactored from dump_gimple_expr.
	(dump_gs_switch): Added.
	(gs_build_switch_vec): Added.
	* gimple-ir.c (gs_build_switch_1): Added.
	(gs_build_switch): Refactored to use gs_build_switch_1.
	(gs_build_switch_vec): Added.
	* gs_switch.c: New test case.
	* gs_switch1.c: New test case.
	* gs_switch2.c: New test case.
	
2007-07-05  Aldy Hernandez  <aldyh@redhat.com> 

	* gimple-pretty-print.c (dump_gimple_stmt): Alphabetize cases.
	Add case for GS_NOP.
	* gimplify.c (gimplify_body): Handle null bodies.
	Use GS_CODE instead of GS_SUBCODE_FLAGS.

2007-07-05  Aldy Hernandez  <aldyh@redhat.com> 

	* testsuite/gcc.dg/gimple/with_size_expr.c: Clean up dump.
	* testsuite/gcc.dg/gimple/gs_bind.c: Clean up dump.
	* gimplify.c (struct gimplify_ctx): Make current_bind_expr a tuple.
	(pop_gimplify_context): Accept gimple.
	Comment out call to declare_vars.
	(gimple_current_bind_expr): Return gimple.
	(unshare_all_trees): Remove.
	(gimplify_self_mod_expr): Remove comment.
	(gimplify_cleanup_point_expr): Correct typo in call to gs_seq_init.
	(gimplify_body): Remove body local.  
	Build GS_BIND tuples when needed.
	Do not call unshare_all_trees.
	Call pop_gimplify_context with appropriate argument.
	Comment out call to walk_tree.
	* tree-pretty-print.c (print_declaration): Remove static.
	* diagnostic.h (print_declaration): Prototype.
	* tree-gimple.h (pop_gimplify_context): Accept gimple tuple.
	(gimple_current_bind_expr): Return tuple.
	* gimple-pretty-print.c (dump_gs_seq): New.
	(dump_gs_bind): New.
	(dump_gimple_stmt): Add case for GS_BIND.  Print semi-colons after
	each statement.

2007-06-29  Aldy Hernandez  <aldyh@redhat.com> 

	* gimplify.c (gimple_push_condition): Enable.  Call gs_seq_init with
	address.
	(gimplify_cond_expr): Push and pop conditions.  Use other GS_COND
	predicates when appropriate

2007-06-28  Aldy Hernandez  <aldyh@redhat.com> 

	* testsuite/gcc.dg/gimple/gs_goto.c: New.
	* testsuite/gcc.dg/gimple/gs_cond.c: New.
	* tree-gimple.h (gimplify_stmt): Return bool.
	* gimple-pretty-print.c (INDENT): New.
	(newline_and_indent): New.
	(op_gs_cond): New.
	(dump_gs_cond): New.
	(dump_gimple_stmt): New.
	* gimple-ir.c (gs_cond_invert): New.
	* gimple-ir.h (enum gs_cond): Add comment.
	(gs_cond_invert): Protoize.
	* gimplify.c (gimplify_cond_expr): Rewrite for tuples.
	(gimplify_stmt): Return true if we added a statement to the queue.
	(gimplify_expr): Enable gimplify_cond_expr.
	Build tuples for GOTO_EXPRs and LABEL_EXPRs.

2007-06-27  Aldy Hernandez  <aldyh@redhat.com> 

	* gimple-ir.h (gs_seq_last): Return last statement.
	* testsuite/gcc.dg/gimple/compound_expr.c: Add checks.
	* testsuite/gcc.dg/gimple/gs_call.c: Same.
	* testsuite/gcc.dg/gimple/constructors.c: Same.
	* testsuite/gcc.dg/gimple/gs_assign.c: Same.

2007-06-27  Aldy Hernandez  <aldyh@redhat.com> 

	Put this patch back in.

	2007-06-22  Aldy Hernandez  <aldyh@redhat.com> 

	* gimplify.c (gimplify_modify_expr): Return after a successful
	call to gimplify_modify_expr_rhs.

2007-06-26  Aldy Hernandez  <aldyh@redhat.com>

	* testsuite/gcc.dg/gimple/gimple.exp: Pass -fdump-tree-gimple-details
	* testsuite/gcc.dg/gimple/compound_expr.c: Add dg-final.
	* testsuite/gcc.dg/gimple/gs_return.c: Same.
	* tree.h (gimplify_function_tree): Add return value.
	* diagnostic.h (debug_c_tree): Move under tree-pretty-print.c section.
	(dump_gimple_seq): New.
	to tests.
	* gimple-pretty-print.c (dump_gimple_seq): New.
	* gimplify.c (gimplify_function_tree): Add return value.
	Remove debug call and exit.
	Comment out non-working code.
	* c-gimplify.c (c_genericize): Dump gimple IR.  Exit.

2007-06-26  Diego Novillo  <dnovillo@google.com>

	* gimple-ir.c (gs_build_call_1): Fix formatting.

2007-06-26  Diego Novillo  <dnovillo@google.com>

	* gimple-pretty-print.c (dump_gs_assign, dump_gs_return,
	dump_gs_call): New functions.
	(dump_gimple_stmt): Call them.
	* gimple-ir.c (gs_build_call_1): Factor out of gs_build_call.
	(gs_build_call): Call it.
	(gs_build_call_vec): New function.
	* gimple-ir.h (struct gimple_statement_call): Change type of
	field 'nargs' to size_t.  Update all users.
	(gs_build_call_vec): Declare.
	(gs_call_set_fn): Remove.
	(gs_call_set_nargs): Remove.
	* gimplify.c: Include "vec.h"
	(gimplify_return_expr): Fix formatting
	(gimplify_call_expr): Call gs_build_call_vec.
	(gimplify_expr): Do not try to test if NULL expressions
	are in GIMPLE form.
	(gimplify_function_tree): Do not call debug_gimple_seq.
	* Makefile.in (gimplify.o): Include vec.h

2007-06-25  Chris Matthews  <chrismatthews@google.com>

	* gimplify.c (gimple_current_bind_expr): Changed to work with gs_seq
	accessors 
	(gimplify_and_add): Same.
	(annotate_all_with_locus): Same.
	(gimplify_self_mod_expr): Same.
	(gimplify_cleanup_point_expr): Same.
	(gimplify_expr): Same.
	(gimplify_body): Same.
	(force_gimple_operand): Same.
	(gimplify_init_ctor_eval_range): Added GS_ prefix.
	* gimple-iterator.h (gsi_last): Changed to gs_seq accessors.  Changed
	gimple_stmt_iterator to use a gimple instead of gimple *.
	(gsi_one_before_end_p): Same.
	(gsi_start): Same.
	* gimple-ir.h (gs_cond): Prepended GS_ to names.
	(gs_seq_first): Replaced macro.
	(gs_seq_last): Same.
	(gs_seq_set_first): Same.
	(gs_seq_set_last): Same.
	(gs_seq_init): Same.
	(gs_seq_empty_p): Same.
	(gs_assign_operand) Changed opno to be a size_t to match set.
	(gs_bind_body): Changed to use gs_seq.
	(gs_bind_set_body): Changed to use gs_seq, and gs_seq_set_first, and last. 
	(gs_asm_ninputs): Renamed.
	(gs_asm_noutputs): Renamed.
	(gs_asm_nclobbered): Renamed.
	(gs_asm_set_ninputs): Renamed.
	(gs_asm_set_noutputs): Renamed.
	(gs_asm_set_nclobbered): Renamed.
	(gs_asm_set_input_op): Renamed.
	(gs_asm_input_op): Renamed.
	(gs_asm_set_output_op): Renamed.
	(gs_asm_output_op): Renamed.
	(gs_omp_body): Changed to use gs_seq.
	(gs_omp_set_body): Changed to use gs_seq accessors.
	(gs_omp_for_pre_body): Changed to use gs_seq.
	(gs_omp_for_set_pre_body): Changed to use gs_seq accessors.
	(gs_seq_append): Changed to use gs_seq accessors.
	* gimple-ir.c (gs_add): Same.
	(gs_build_asm): Changed argument names to match accessors, and changed
	functions to new accessor names.
	(gs_build_cond): Reformatted.
	(gs_build_phi): Same.
	(gs_build_try): Renamed args to try_p and catch_p.
	(gs_build_omp_return): Change to correct arguments, and added a subcode 
	flag.
	* function.c (gimplify-oaraneters): Changed to gs_seq accessors.

2007-06-22  Aldy Hernandez  <aldyh@redhat.com>

	* gimplify.c (gimplify_modify_expr): Return after a successful
	call to gimplify_modify_expr_rhs.

2007-06-21  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.h (gs_assign_binary_rhs1): Add assertion for
	GSS_ASSIGN_BINARY.
	(gs_assign_binary_set_rhs1): Same.
	(gs_assign_binary_rhs2): Same.
	(gs_assign_binary_set_rhs2): Same.
	(gs_assign_unary_rhs): Same.
	(gs_assign_unary_set_rhs): Same.

2007-06-21  Aldy Hernandez  <aldyh@redhat.com>

	* gcc.dg/gimple/gimple.exp: New.
	* gcc.dg/gimple/compound_expr.c: New.
	* gcc.dg/gimple/with_size_expr.c: New.
	* gcc.dg/gimple/compound_expr.c: New.
	* gcc.dg/gimple/gs_call.c: New.
	* gcc.dg/gimple/constructors.c: New.
	* gcc.dg/gimple/gs_return.c: New.
	* gcc.dg/gimple/gs_assign.c: New.

2007-06-21  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.c (gs_build_cond): Change order of arguments.  Make labels
	of type tree.
	(gs_build_asm): Fix formatting.
	* gimple-ir.h (gimple_statement_cond): Make labels of type tree.
	(gs_build_cond): Change order and type of arguments.
	(gs_build_asm): Fix formatting.
	(gs_omp_build_for): Same.
	(gs_assign_binary_rhs1): Remove assert.
	(gs_assign_binary_set_rhs1): Same.
	(gs_assign_binary_rhs2): Same.
	(gs_assign_binary_set_rhs2): Same.
	(gs_assign_unary_rhs): Same.
	(gs_cond_true_label): Return a tree.
	(gs_cond_set_true_label): Make label a tree.
	(gs_cond_set_false_label): Make label a tree.
	(gs_cond_false_label): Return a tree.
	* gimplify.c (gimplify_init_ctor_eval_range): Build tuples.
	(gimplify_init_ctor_eval): Same.
	(gimplify_init_constructor): Enable.  Adjust for tuples.
	(gimplify_modify_expr_rhs): Uncomment call to
	gimplify_init_constructor.

2007-06-21  Diego Novillo  <dnovillo@google.com>

	* gimple.def: Rename from gs.def.
	Adjust all users.

2007-06-21  Diego Novillo  <dnovillo@google.com>

	* tree-pretty-print.c (pred_symbol_code, do_gs_niy,
	debug_gimple_stmt, debug_gimple_seq, print_gimple_stmt,
	dump_gimple_stmt): Move to gimple-pretty-print.c
	* diagnostic.h: Add comment for functions in gimple-pretty-print.c
	* gimple-pretty-print.c: New file.
	* gimple-ir.c (gs_build_return): Fix spacing.
	(gs_build_assign): Likewise.
	* gimple-ir.h: Fix spacing.
	(gs_assign_set_operand): Change OPNO to size_t.
	Add assertions for OPNO's value.
	(gs_assign_lhs): Rename from gs_assign_operand_lhs.
	(gs_assign_binary_rhs1): Rename from gs_assign_operand_rhs.
	Assert that GS is GSS_ASSIGN_BINARY
	(gs_assign_binary_set_rhs1): Rename from gs_assign_set_rhs.
	Assert that GS is GSS_ASSIGN_BINARY.
	(gs_assign_binary_set_rhs2): Rename from gs_assign_set_rhs2.
	Assert that GS is GSS_ASSIGN_BINARY.
	(gs_assign_unary_rhs): New.
	(gs_assign_unary_set_rhs): New.
	(gs_call_fn, gs_call_lhs, gs_call_chain, gs_call_arg,
	gs_cond_lhs, gs_cond_rhs, gs_label_label, gs_goto_dest,
	gs_bind_vars, gs_asm_in_op, gs_asm_out_op, gs_asm_clobber_op,
	gs_catch_types, gs_catch_handler, gs_eh_filter_types,
	gs_eh_filter_failure, gs_try_eval, gs_try_cleanup,
	gs_phi_result, gs_switch_index, gs_switch_default_label,
	gs_switch_label,gs_omp_critical_name, gs_omp_for_clauses,
	gs_omp_for_index, gs_omp_for_initial, gs_omp_for_final,
	gs_omp_for_incr, gs_omp_parallel_clauses,
	gs_omp_parallel_child_fn, gs_omp_parallel_data_arg,
	gs_omp_single_clauses, gs_omp_sections_clauses,
	gs_return_retval): Change return type to 'tree'.
	* Makefile.in (OBJS-common): Add gimple-pretty-print.o.
	(gimple-pretty-print.o): New rule.

2007-06-20  Aldy Hernandez  <aldyh@redhat.com>

	* tree-pretty-print.c (dump_gimple_stmt): Change pred_symbol_code
	to op_symbol_code.

2007-06-19  Aldy Hernandez  <aldyh@redhat.com>

	* gimplify.c (gimplify_modify_expr_rhs): Enable.  Adjust for tuples.
	(gimplify_modify_expr): Call gimplify_modify_expr_rhs.
	(gimplify_compound_expr): Enable.  Adjust for tuples.  Remove comment
	that no longer applies.
	(gimplify_expr): Enable call to gimplify_compound_expr.

2007-06-18  Chris Matthews  <chrismatthews@google.com>

	* Makefile.in (GTFILES): Added gimeple-ir.h.

	* gimple-ir.c (gs_build_return, gs_build_call, gs_build_assign): 
	Changed to use new accessors.
	(gs_build_cond, gs_build_label, gs_build_goto,
	gs_build_nop, gs_build_bind gs_build_asm, gs_build_catch,
	gs_build_eh_filter, gs_build_try, gs_build_phi,
	gs_build_resx, gs_build_switch, gs_omp_build_critical,
	gs_omp_build_for, gs_omp_build_parallel,
	gs_omp_build_section, gs_omp_build_master,
	gs_omp_build_ordered, gs_omp_continue,
	gs_omp_build_ordered, gs_omp_build_return,
	gs_omp_build_sections, gs_omp_build_single): New
	functions.

	* gimple-ir.h (struct gimple_statement_switch): Changed
	default label to be in labels[0].

	(struct gimple_statement_asm): Corrected the allocation
	length.

	(enum gs_cond): New enum.
	(gs_assign_set_operand): Changed to work with new accessors.
	(gs_assign_operand_lhs, gs_assign_operand_rhs,
	gs_assign_operand_set_lhs, gs_assign_set_rhs,
	gs_assign_operand_rhs2, gs_assign_set_rhs2, gs_call_fn,
	gs_call_set_fn, gs_call_lhs, gs_call_set_lhs,
	gs_call_chain, gs_call_set_chain, gs_call_nargs,
	gs_call_set_nargs, gs_call_arg, gs_call_set_arg,
	gs_cond_lhs, gs_cond_set_lhs, gs_cond_rhs,
	gs_cond_set_rhs, gs_cond_true_label,
	gs_cond_set_true_label, gs_cond_set_false_label,
	gs_cond_false_label, gs_label_label, gs_label_set_label,
	gs_goto_dest, gs_goto_set_dest, gs_bind_vars,
	gs_bind_set_vars, gs_bind_body, gs_bind_set_body,
	gs_asm_ni, gs_asm_set_ni, gs_asm_no, gs_asm_set_no,
	gs_asm_nc, gs_asm_set_nc, gs_asm_in_op, gs_asm_set_in_op,
	gs_asm_out_op, gs_asm_set_out_op, gs_asm_clobber_op,
	gs_asm_set_clobber_op, gs_asm_string, gs_asm_set_string,
	gs_catch_types, gs_catch_handler, gs_catch_set_types,
	gs_catch_set_handler, gs_eh_filter_types,
	gs_eh_filter_failure, gs_eh_filter_set_types,
	gs_eh_filter_set_failure, gs_try_eval, gs_try_cleanup,
	gs_try_set_eval, gs_try_set_cleanup, gs_phi_capacity,
	gs_phi_set_capacity, gs_phi_nargs, gs_phi_set_nargs,
	gs_phi_result, gs_phi_set_result, gs_phi_arg,
	gs_phi_set_arg, gs_resx_region, gs_resx_set_region,
	gs_switch_nlabels, gs_switch_set_nlabels,
	gs_switch_index, gs_switch_set_index,
	gs_switch_default_label, gs_switch_set_default_label,
	gs_switch_label, gs_switch_set_label, gs_omp_body,
	gs_omp_set_body, gs_omp_critical_name,
	gs_omp_critical_set_name, gs_omp_for_clauses,
	gs_omp_for_set_clauses, gs_omp_for_index,
	gs_omp_for_set_index, gs_omp_for_initial,
	gs_omp_for_set_initial, gs_omp_for_final,
	gs_omp_for_set_final, gs_omp_for_incr,
	gs_omp_for_set_incr, gs_omp_for_pre_body,
	gs_omp_for_set_pre_body, gs_omp_parallel_clauses,
	gs_omp_parallel_set_clauses, gs_omp_parallel_child_fn,
	gs_omp_parallel_set_child_fn, gs_omp_parallel_data_arg,
	gs_omp_parallel_set_data_arg, gs_omp_single_clauses,
	gs_omp_single_set_clauses, gs_omp_sections_clauses,
	gs_omp_sections_set_clauses, gs_assign_omp_for_cond,
	gs_omp_for_cond gs_return_set_retval,
	gs_add_subcode_flag): New accessor functions.
	(gs_return_retval): Renamed gs_return_operand_retval to match accessor 
	conventions.

2007-05-31  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.c (gs_build_call): New.
	* gimple-ir.h (GS_CALL_LHS): New.
	(GS_CALL_FN): New.
	(GS_CALL_CHAIN): New.
	(GS_CALL_NARGS): New.
	(GS_CALL_ARG): New.
	(gs_call_lhs): New.
	(gs_call_fn): New.
	(gs_call_chain): New.
	(gs_call_nargs): New.
	(gs_call_arg): New.
	* gimplify.c (gimplify_modify_expr_to_memcpy): Enable and rewrite for 
	tuples.
	(gimplify_modify_expr_to_memset): Same.
	(gimplify_statement_list): Same.
	(gimplify_expr): Enable STATEMENT_LIST case.

2007-05-29  Aldy Hernandez  <aldyh@redhat.com>

	Merged revisions 124007-125166 from mainline.

2007-05-23  Aldy Hernandez  <aldyh@redhat.com>

	* builtins.c (std_gimplify_va_arg_expr): Add argument to gimplify_expr.
	Remove seq argument.
	(gimplify_va_arg_expr): Same.
	* tree-gimple.h: Same.
	* langhooks.c (lhd_gimplify_expr): Change pre_p and post_p types to
	sequences.
	* langhooks-def.h (lhd_gimplify_expr): Change 
	* langhooks.h (struct lang_hooks): Remove argument.
	* gimplify.c (internal_get_tmp_var): Adjust calls to gimplify_expr
	for new arguments.
	(gimplify_switch_expr): Same.
	(gimplify_var_or_parm_decl): Same.
	(gimplify_compound_lval): Same.
	(gimplify_self_mod_expr): Same.
	(gimplify_arg): Same.
	(gimplify_call_expr): Same.
	(gimplify_init_ctor_preeval): Same.
	(gimplify_init_constructor): Same.
	(gimplify_modify_expr_rhs): Same.
	(gimplify_modify_expr): Same.
	(gimplify_save_expr): Same.
	(gimplify_addr_expr): Same.
	(gimplify_asm_expr): Same.
	(gimplify_target_expr): Same.
	(omp_check_private): Same.
	(gimplify_scan_omp_clauses): Same.
	(gimplify_omp_parallel): Same.
	(gimplify_omp_for): Same.
	(goa_stabilize_expr): Same.
	(gimplify_omp_atomic): Same.
	(gimplify_one_sizepos): Same.
	(force_gimple_operand): Same.
	(gimplify_expr): Remove seq_p argument.  Add new is_statement
	argument.  Adjust accordingly.  Make seq_p required.

2007-05-07  Aldy Hernandez  <aldyh@redhat.com>

	* function.c (gimplify_parameters): Use new GS_SEQ_INIT definition.
	* gimple-ir.h (GS_SEQ_INIT): Do not use C99 constructs.
	* gimplify.c: Disable non working code throughout.
	Pass additional call to gimplify_expr throughout.
	(gimplify_ctx): Make conditional_cleanups a sequence.
	(gimple_push_condition): Use GS_SEQ_EMPTY_P.
	(gimple_pop_condition): Adapt for sequences.
	(gimplify_and_add): Use gs_seq_append regardless of side effects.
	(internal_get_tmp_var): Use sequences.
	(get_formal_tmp_var): Same.
	(get_initialized_tmp_var): Same.
	(annotate_one_with_locus): Change GS_LOCUS to GS_LOCUS_EMPTY_P.
	(gimplify_bind_expr): Use sequences.
	Change append_to_statement_list to gimplify_and_add.
	(gimplify_return_expr): Add gimplified code to pre_p.
	(gimplify_decl_expr): New seq_p parameter.
	(gimplify_loop_expr): Adapt for sequences.
	Use gimplify_and_add instead of append_to_statement_list.
	(gimplify_switch_expr): Same.
	(gimplify_compound_lval): Use sequences.
	(gimplify_self_mod_expr): Same.
	Use gs_seq_append instead of append_to_statement_list.
	(gimplify_arg): Use sequences.
	(gimplify_call_expr): Same.
	(gimplify_cond_expr): Use sequences.
	(gimplify_init_ctor_preeval): Use sequences.
	(gimplify_init_ctor_eval_range): Same.
	Use gimplify_and_add instead of append_to_statement_list.
	(gimplify_init_ctor_eval): Use sequences.
	(gimplify_init_constructor): Same.
	Remove one call to append_to_statement_list.
	(gimplify_modify_expr_rhs): Use sequences.
	(gimplify_modify_expr_complex_part): Use sequences.
	Remove call to tree_to_gimple_tuple.
	Build GS_ASSIGN tuple.
	(gimplify_modify_expr): Use new argument.  Use sequences.
	Do not call append_to_statement_list.
	Build GS_ASSIGN tuple.
	Do not call tree_to_gimple_tuple.
	Set *expr_p to NULL when we do not want the value.
	(gimplify_compound_expr): Use sequences.
	(gimplify_save_expr): Same.
	(gimplify_addr_expr): Same.
	(gimplify_asm_expr): Same.
	(gimplify_cleanup_point_expr): Same.
	(gimple_push_cleanup): Same.
	Build GS_ASSIGN tuples.
	(gimplify_target_expr): Use sequences.
	(gimplify_scan_omp_clauses): Same.
	Add argument to gimplify_stmt calls.
	(gimplify_omp_parallel): Same.
	(gimplify_omp_for): Use sequences.
	(gimplify_omp_workshare): Same.
	(goa_stabilize_expr): Same.
	(gimplify_omp_atomic_pipeline): Same.
	(gimplify_omp_atomic_mutex): Same.
	(gimplify_omp_atomic): Same.
	(gimplify_expr): Same.
	Call GS_SEQ_INIT with argument.
	Use new seq_p argument.
	Do not call tree_to_gimple_tuple.
	Pass additional argument to gimplify_decl_expr.
	Do not pass seq_p argument to gimplify_return_expr.
	Call gs_seq_append instead of append_to_statement_list.
	Check that all statements have been converted to tuples.
	Make pre_p and seq_p sequences coexist.
	(gimplify_type_sizes): Use sequences.
	(gimplify_one_sizepos): Same.
	(gimplify_body): Make parm_stmts a sequence.
	Add argument to seq_p.
	(gimplify_function_tree): Call debug_gimple_seq.
	(force_gimple_operand): Use sequences.
	(force_gimple_operand_bsi): Use sequences.

2007-05-04  Aldy Hernandez  <aldyh@redhat.com>

	* omp-low.c (build_omp_barrier): Adjust arguments for sequences.
	(lower_rec_input_clauses): Disable non working code.
	(lower_regimplify): Pass additional argument to gimplify_expr.
	* tree-mudflap.c (mx_register_decls): Disable non working code.
	* tree-inline.c (copy_bb): Disable non working code.
	(setup_one_parameter): Same.
	* tree-cfg.c (make_edges): Same.

2007-05-04  Aldy Hernandez  <aldyh@redhat.com>

	* tree-gimple.h (get_initialized_tmp_var): Adjust prototype
	for sequences.
	(get_formal_tmp_var): Same.
	(gimplify_type_sizes): Same.
	(gimplify_one_sizepos): Same.
	(gimplify_stmt): Same.
	(gimplify_and_add): Same.
	(gimplify_va_arg_expr): Same.
	* langhooks.h (lang_hooks): Same.
	* function.c (gimplify_parm_type): Adjust for sequences.
	(gimplify_parameters): Same.
	* c-gimplify.c (gimplify_compound_literal_expr): Same.
	(c_gimplify_expr): Same.
	* tree-flow.h (force_gimple_operand): Same.
	* c-common.h (c_gimplify_expr): Adjust prototype for sequences.
	* config/i386/i386.c (ix86_gimplify_va_arg): Adjust for sequences.
	Change call to append_to_statement_list to gimplify_and_add.
	Add parameter to gimplify_expr.

2007-05-04  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.c (gs_code_name): Constify.
	(gs_build_assign): New.
	(gimple_statement_structure): Abstract code out to...
	(gss_for_assign): ...here.
	(gs_add): Set the last item correctly.
	* gimple-ir.h (GS_LOCUS_EMPTY_P): New.
	(GS_SEQ_INIT): Add a cast.
	(gimple_statement_base): Make code a gs_code enum.
	(gimple_statement_with_ops): Remove address_taken.
	(GS_ASSIGN_BINARY_LHS): New.
	(GS_ASSIGN_BINARY_RHS1): New.
	(GS_ASSIGN_BINARY_RHS2): New.
	(GS_ASSIGN_UNARY_REG_LHS): New.
	(GS_ASSIGN_UNARY_REG_RHS): New.
	(GS_ASSIGN_UNARY_MEM_LHS): New.
	(GS_ASSIGN_UNARY_MEM_RHS): New.
	(gs_seq_append): New.
	Move gs_seq typedef to...
	* coretypes.h: ...here.
	* gimple-iterator.h (gsi_stmt_ptr): Add FIXME note.

2007-05-04  Aldy Hernandez  <aldyh@redhat.com>

	* tree.h (std_gimplify_va_arg_expr): Change tree * to a sequence
	in prototype.
	(gimplify_parameters): Return a sequence.
	* target.h (gimplify_va_arg_expr): Change tree * to a sequence.
	* builtins.c (std_gimplify_va_arg_expr): Same.
	Pass additional argument to gimplify_expr.
	(gimplify_va_arg_expr): Change tree * to a sequence.
	Change append_to_statement_list call to gimplify_and_add.
	Pass additional argument to gimplify_expr calls.

2007-05-04  Aldy Hernandez  <aldyh@redhat.com>

	* tree-pretty-print.c (do_gs_niy): New.
	(debug_gimple_stmt): New.
	(debug_gimple_seq): New.
	(print_gimple_stmt): New.
	(dump_gimple_stmt): New.
	* diagnostic.h: Add prototypes for dump_gimple_stmt,
	print_gimple_stmt, debug_gimple_stmt, debug_gimple_seq.

2007-04-26  Aldy Hernandez  <aldyh@redhat.com>

	* tree-gimple.h (annotate_all_with_locus): First argument is now a
	sequence.
	* gimple-ir.h (GS_LOCUS): New.
	(gimple_statement_base): Locus is of type location_t.
	* gimplify.c (internal_get_tmp_var): Use sequences.
	(should_carry_locus_p): Adjust for gimple ir.
	(annotate_one_with_locus): Same.
	(annotate_all_with_locus): Same.
	(gimplify_stmt): Adjust for sequences.
	(gimplify_expr): Same.

2007-04-25  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.h (GS_SEQ_EMPTY_P): New.
	Move gs_build_return, gs_add, and gimple_statement_structure
	prototypes.
	(gs_assign_operand): Fix typos in gss.
	Include gimple-iterator.h.
	* Makefile.in (GIMPLE_IR_H): Add gimple-iterator.h.
	(TREE_GIMPLE_H): Same.

2007-04-25  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-iterator.h (gsi_one_before_end_p): Use GS_SEQ_LAST.

2007-04-25  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-iterator.h: New file.

2007-04-23  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ir.c: New file.
	* gimple-ir.h: New file.
	* gsstruct.def: New file.
	* gs.def: New file.
	* gengtype.c (open_base_files): Add gimple-ir.h.
	* tree-gimple.h: Include gimple-ir.h.
	Add sequence to gimplify_expr and gimplify_body prototypes.
	* gimplify.c: Include gimple-ir.h.
	(gimplify_and_add): Adjust for gimple IR.
	(gimplify_return_expr): Same.
	(gimplify_stmt): Add seq_p argument.
	(gimplify_expr): Add seq_p sequence and adjust accordingly.
	(gimplify_body): Same.
	* coretypes.h: Add gimple_statement_d and gimple definitions.
	* Makefile.in (GIMPLE_IR_H): New.
	(TREE_GIMPLE_H): Add gimple-ir.h.
	(OBJS-common): Add gimple-ir.o.
	(gimplify.o): Add GIMPLE_IR_H.
	(gimple-ir.o): New.
	(build/gencheck.o): Add gs.def.

Local Variables:
mode: change-log
End:


Copyright (C) 2007-2008 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
