2004-05-10  Andrew Haley  <aph@redhat.com>

	* java-gimplify.c (java_gimplify_expr): Copy the LHS of a binary
	expression into a temporary variable.

	(java_gimplify_new_array_init): Set the DECL_CONTEXT of array and
	tmp to current_function_decl.

2004-04-13  Diego Novillo  <dnovillo@redhat.com>

	* expr.c (build_expr_wfl): Don't check type nodes for
	side effects.

2004-04-12  Diego Novillo  <dnovillo@redhat.com>

	* decl.c (java_expand_stmt): Remove.
	* lang.c (LANG_HOOKS_RTL_EXPAND_STMT): Remove.

2004-02-24  Richard Henderson  <rth@redhat.com>

	* java-gimplify.c (java_gimplify_new_array_init): Remove extra
	argument building BLOCK.

2004-02-19  Steven Bosscher  <stevenb@suse.de>

	* decl.c (poplevel): Don't output nested inline functions.

2004-02-16  Richard Henderson  <rth@redhat.com>

	* builtins.c (java_build_function_call_expr): Add static chain
	operand to call_expr.

2004-01-29  Richard Henderson  <rth@redhat.com>

	PR java/12906
	* decl.c (maybe_pushlevels): Careful with TREE_CHAIN when
	registering decls with push_jvm_slot.

2003-12-10  Diego Novillo  <dnovillo@redhat.com>

	* parse.y (resolve_field_access): Remove superfluous
	initialization of decl.

2003-12-10  Richard Henderson  <rth@redhat.com>

	* lang.c (java_post_options): Don't ever use rtl inlining.

2003-12-06  Jan Hubicka  <jh@suse.cz>

	* parse.y (resolve_field_access): Initialize decl.

2003-11-31  Richard Henderson  <rth@redhat.com>

	* lang.c (java_start_inlining): Remove.
	(LANG_HOOKS_TREE_INLINING_START_INLINING): Remove.

2003-11-31  Richard Henderson  <rth@redhat.com>

	* jcf-parse.c (java_parse_file): Finalize cgraph after emitting
	class tables.

2003-11-24  Richard Henderson  <rth@redhat.com>

	* Make-lang.in (parse.o): Remove -Wno-error.

2003-11-20  Richard Henderson <rth@redhat.com>

	* constants.c (build_constant_data_ref): Lay out the array type.

2003-11-20  Richard Henderson <rth@redhat.com>

	* class.c (build_indirect_class_ref): Use convert.
	* constants.c (build_constant_data_ref): Fix type on the decl
	and return that directly.
	(build_constants_constructor): Remove kruft to match.
	(build_ref_from_constant_pool): Use ARRAY_REF.
	* expr.c (build_java_indirect_ref): Use convert.
	(build_known_method_ref): Likewise.
	* parse.y (patch_string_cst): Likewise.

	* class.c (finish_class): Kill code to output_inline_function.

2003-11-12  Jason Merrill  <jason@redhat.com>

	PR optimization/12547
	* lang.c (java_tree_inlining_walk_subtrees): Restore.
	(LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Restore.

2003-11-12  Richard Henderson  <rth@redhat.com>

	* java-gimplify.c (java_gimplify_expr): Use annotate_with_locus
	instead of annotate_all_with_locus.

2003-11-10  Richard Henderson  <rth@redhat.com>

	* expr.c: Use append_to_statement_list instead of add_tree.

2003-10-30  Richard Henderson  <rth@redhat.com>

	* java-gimplify.c (cleanup_compound_expr): Remove.
	(cleanup_try_finally_expr): Remove.
	(java_gimplify_expr): Don't call them.
	(java_gimplify_case_expr): Use create_artificial_label.
	(java_gimplify_default_expr): Likewise.

2003-10-30  Richard Henderson  <rth@redhat.com>

	* expr.c (expand_java_switch, expand_java_add_case): New.
	(LOOKUP_SWITCH, TABLE_SWITCH): Use them.

2003-10-23  Richard Henderson  <rth@redhat.com>

	* java-gimplify.c (java_gimplify_expr): Return gimplify_status.

2003-10-14  Richard Henderson  <rth@redhat.com>

	* decl.c (finish_method): Set cfun->function_end_locus.
	* java-gimplify.c (java_gimplify_expr): Set input_location
	for EXPR_WITH_FILE_LOCATION.  Use annotate_all_with_locus.
	* parse.h (DECL_SOURCE_LINE_MERGE): Remove.
	(DECL_SOURCE_LINE_FIRST, DECL_SOURCE_LINE_LAST): Remove.
	* parse.y (missing_return_error): Use DECL_FUNCTION_LAST_LINE.
	(finish_method_declaration): Likewise.
	(start_artificial_method_body): Likewise.
	(lookup_cl): Use DECL_SOURCE_LINE.
	(start_complete_expand_method): Likewise.
	(java_complete_lhs): Fix IS_EXPR_CODE_CLASS check.

2003-10-13  Richard Henderson  <rth@redhat.com>

	* decl.c (java_add_stmt): Use annotate_with_locus.

2003-10-13  Richard Henderson  <rth@redhat.com>

	* expr.c (build_java_jsr): Don't emit LABEL_EXPR or
	load_type_state here.

2003-10-12  Richard Henderson  <rth@redhat.com>

	* class.c (build_utf8_ref, get_dispatch_table): Set TREE_INVARIANT.
	(make_class_data, build_symbol_entry, emit_symbol_table): Likewise.
	* decl.c (java_init_decl_processing): Likewise.
	* except.c (prepare_eh_table_type): Likewise.
	* parse.y (patch_assignment, patch_binop): Likewise.
	(patch_string_cst, patch_new_array_init): Likewise.
	* resource.c (compile_resource_data): Likewise.

2003-10-08  Jeff Sturm  <jsturm@one-point.com>

	* decl.c (cgraph.h): Include.
	(tree-inline.h, tree-dump.h, tree-flow.h): Remove includes.
	(complete_start_java_method): Remove.
	(start_java_method): Combine with complete_start_java_method.
	Remove dead code.
	(end_java_method): Don't patch or expand tree.
	Use finish_method.
	(finish_method): New function.
	(java_expand_body): Use tree_rest_of_compilation.
	(java_expand_stmt): New function.

	* java-gimplify.c (tree-dump.h): Include.
	(java_genericize): New function.
	(dump_java_tree): Declare.  New function.

	* java-tree.h (start_complete_expand_method): Remove declaration.
	(complete_start_java_method): Remove declaration.
	(finish_method, java_expand_stmt, java_genericize): Declare.

	* lang.c (LANG_HOOKS_RTL_EXPAND_STMT): Define.

	* parse.y (tree-inline.h, tree-dump.h, tree-flow.h,
	cgraph.h): Remove includes.
	(start_complete_expand_method): Declare.
	(source_end_java_method): Don't expand tree.  Use finish_method.
	Reset current_function_decl.
	(java_expand_method_bodies): Don't patch tree for class
	initialization or method synchronization.

2003-10-01  Richard Henderson  <rth@redhat.com>

	* decl.c (end_java_method): Invoke remove_useless_stmts_and_vars
	and lower_eh_constructs.
	* parse.y (source_end_java_method): Likewise.

2003-09-24  Jason Merrill  <jason@redhat.com>

	* decl.c, jcf-parse.c, jcf-write.c, parse.h, parse.y, resource.c:
	Revert from TREE_LOCUS to DECL_SOURCE_LOCATION.

2003-09-18  Richard Henderson  <rth@redhat.com>

	* lang.c (java_estimate_num_insns): Take an expr, not a decl.

2003-08-12  Diego Novillo  <dnovillo@redhat.com>

	* java-gimplify.c (java_gimplify_block): If the body is a
	NULL_TREE, return an empty statement.

2003-08-08  Jason Merrill  <jason@redhat.com>

	* parse.y (source_end_java_method): Support
	!keep_function_tree_in_gimple_form.
	Do TDI_generic dump.

2003-07-31  Andrew Haley  <aph@redhat.com>

	* java-tree.h: (add_stmt_to_compound): New function.
	(java_add_stmt): New function.
	(java_add_local_var): New function.
	(get_stmts): New function.
	* java-gimplify.c (java_gimplify_block): Allow for null body.
	* except.c (link_handler): Set h->stmt.
	(expand_start_java_handler): Build a TRY_CATCH_EXPR for this
	range;  don't expand_eh_region_start.
	(expand_end_java_handler): Rewrite.
	* java-except.h (stmt): New field.
	* expr.c (flush_quick_stack): Replace expand_assignment with
	java_add_stmt.
	(java_stack_dup): Replace emit_move_insn with java_add_stmt.
	(build_java_athrow): Replace expand_expr_stmt with java_add_stmt.
	(build_java_jsr): Replace emit_jump with java_add_stmt (build (GOTO_EXPR))
	(build_java_ret): Replace expand_computed_goto with
	java_add_stmt (build (GOTO_EXPR))
	(expand_java_arraystore): Replace expand_assignment with
	java_add_stmt.
	(expand_java_return): Replace expand_return with
	java_add_stmt (build (RETURN_EXPR))
	(expand_load_internal): Remove layout_decl, DECL_REGISTER,
	expand_decl, and expand_decl_init.  Instead, add the local
	variable and a MODIFY_EXPR to the current tree.
	(expand_iinc): Replace expand_assignment with
	java_add_stmt.
	(expand_compare): Replace expand_cond with
	java_add_stmt(build (COND_EXPR))
	(expand_java_goto): Replace expand_goto with
	java_add_stmt (build (GOTO_EXPR))
	(expand_invoke): Replace expand_expr_stmt with java_add_stmt.
	(build_jni_stub): Generate a BIND_EXPR to hold the block we've
	created.  Don't distinguish between source and byte compiler.
	(expand_java_field_op):  Replace expand_assignment with
	java_add_stmt.
	(java_expand_expr): Abort.  No-one should call this function any
	more.
	(expand_byte_code): Replace expand_label with
	java_add_stmt (build (LABEL_EXPR))
	(process_jvm_instruction): Replace build (JAVA_EXC_OBJ_EXPR) with
	build_exception_object_ref.  Replace expand_assignment with
	java_add_stmt.
	* except.c (link_handler): Null stmt field.
	(expand_start_java_handler): Don't expand_eh_region_start.
	Instead, generate a TRY_CATCH_EXPR and insert it into the tree
	we're building.
	(expand_end_java_handler): Don't expand_start_all_catch.  Instead,
	build a TRY_FINALLY_EXPR and wrap the catch block with it.
	Don't expand_end_all_catch.
	* decl.c (push_jvm_slot): Call pushdecl().
	(find_local_variable): Give symbolic names to unnamed local
	variables.
	(struct binding_level: stmts): New field.
	(poplevel): If any statements have been generated at this level,
	create a BIND_EXPR to hold them and copy the variables to it.  If
	we are at the outermost level, save this BIND_EXPR in the
	DECL_SAVED_TREE of this function.
	(maybe_pushlevels): Don't expand_start_bindings.
	(maybe_poplevels): Don't expand_end_bindings.
	(complete_start_java_method): Reorganize static initialization and
	synchronization logic for source compiler.  Remove pushlevel and
	expand_start_bindings for byte compiler.
	(end_java_method): Don't expand_end_bindings.  Add static
	initialization and synchronization logic for byte compiler.
	Set cfun->x_whole_function_mode_p.
	Call gimplify_function_tree and optimize_function_tree and
	expand_expr_stmt.
	(add_stmt_to_compound): New.
	(java_add_stmt): New.
	(java_add_local_var): New.
	(get_stmts): New.
	* parse.y (add_stmt_to_compound): Remove.
	* jcf-parse.c (parse_class_file): Don't call expand_expr_stmt for
	a native method -- we'll do that later.

2003-07-27  Andreas Jaeger  <aj@suse.de>

	* expr.c (build_expr_wfl): Convert remaining K&R prototypes
	to ISO C90.

2003-06-28  Jeff Sturm  <jsturm@one-point.com>

	* java-gimplify.c (java_gimplify_block): Rebuild BLOCK_SUBBLOCKS.
	* lang.c (flag_disable_gimple): Remove initialization.

2003-06-23  Jeff Law  <law@redhat.com>

	* Make-lang.in (java-gimplify.o): Add dependencies.

2003-06-22  Jeff Sturm  <jsturm@one-point.com>

	* parse.y (source_end_java_method): Don't attempt to inline
	or optimize trees if flag_disable_gimple.

	* Make-lang.in (JAVA_OBJS): Remove java-tree-inline.o.

2003-06-21  Jeff Sturm  <jsturm@one-point.com>

	* Make-lang.in (JAVA_OBJS): Add java-gimplify.o.

	* decl.c (java_init_decl_processing): Initialize size_type_node.
	(complete_start_java_method): Update DECL_SAVED_TREE.
	(dump_function): Remove.
	(java_optimize_inline): Remove.

	* expr.c (always_initialize_class_p): Initialize to 1.
	(build_instanceof): Build proper boolean condition.
	(build_class_init): Set DECL_INITIAL for init_test_decl.
	(force_evaluation_order): Don't save_expr a void expr node.

	* java-gimplify.c: New file.

	* java-tree.h (java_gimplify_expr): Declare.

	* lang.c (java_tree_inlining_walk_subtrees): Remove declaration.
	(flag_optimize_sci): Initialize to 0.
	(LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Remove define.
	(LANG_HOOKS_SIMPLIFY_EXPR): Add define.
	(java_tree_inlining_walk_subtrees): Remove function.
	(java_init): Set flag_disable_gimple to 1.

	* parse.y (source_end_java_method): Set cfun->x_whole_function_mode_p.
	Gimplify.  Optimize tree before expanding.  Update comments.
	(java_expand_method_bodies): Always save DECL_SAVED_TREE.
	(patch_invoke): Don't save_expr force_evaluation_order result.
	(patch_assignment): Use simpler compound expression.
	(patch_if_else_statement): Don't optimize constant condition nodes.

2003-03-02  Diego Novillo  <dnovillo@redhat.com>

	* class.c: Replace DECL_SOURCE_FILE with TREE_FILENAME and
	DECL_SOURCE_LINE with TREE_LINENO everywhere.

2003-02-03  Diego Novillo  <dnovillo@redhat.com>

	* parse.y (qualify_ambiguous_name): Initialize variable 'decl'.

2003-01-15  Jeff Law <law@redhat.com>

	* class.c: Use TREE_FILENAME and TREE_LINENO to extract file/line
	information from tree nodes.  Use annotate_with_file_line to
	annotate tree nodes with file/line information.
	* decl.c, jcf-parse.c, jcf-write.c, parse.h: Likewise.
	* parse.y: Likewise.
	* expr.c (java_expand_expr): Handle EXPR_WITH_FILE_LOCATION nodes.
	(build_expr_wfl): New function.
	* java-tree.def (EXPR_WITH_FILE_LOCATION): New node.
	* java-tree.h (EXPR_WFL_*): New macros.
	(build_expr_wfl): Declare.

Local Variables:
mode: change-log
change-log-default-name: "ChangeLog.tree-ssa"
End:
