From 4009bb7d50ece62b164d3717d218ed16b51bddf4 Mon Sep 17 00:00:00 2001 From: Alexandre Petit-Bianco Date: Wed, 8 Aug 2001 21:19:12 -0700 Subject: check-init.c (flags.h): Include 2001-08-08 Alexandre Petit-Bianco * check-init.c (flags.h): Include (check_init): Don't report uninitialized static class initialization flags, don't free bit index when doing static class initialization optimization. (check_for_initialization): Return type changed to `unsigned int.' (attach_initialized_static_class): New function. * class.c (add_method_1): Create the initialized static class table if necessary. (finish_class): Always emit deferred inline methods. * decl.c (emit_init_test_initialization): Moved to expr.c (complete_start_java_method): Don't traverse DECL_FUNCTION_INIT_TEST_TABLE. (lang_mark_tree): Mark hash tables in function decls. * expr.c (emit_init_test_initialization): Moved from decl.c. (build_class_init): Create LAG_DECL_SPECIFIC for the static class initialization flag, set DECL_CONTEXT and LOCAL_CLASS_INITIALIZATION_FLAG. (java_lang_expand_expr): Emit initialization code for static class initialized flags when entering block, if necessary. * gcj.texi (-fno-optimize-static-class-initialization): Documented. * java-tree.h (flag_optimize_sci): New global variable declaration. (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro. (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise. (LOCAL_FINAL_P): Fixed typo in comment. (FINAL_VARIABLE_P): Likewise. (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro. (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise. (struct lang_decl): New fields `ict', `smic' and `cif.' (check_for_initialization): New returned value for global. (attach_initialized_static_class): New global function. (STATIC_CLASS_INIT_OPT_P): New macro. * lang-options.h (-fno-optimize-static-class-initialization): New flag. * lang.c (java_decode_option): Handle `-fno-optimize-static-class-initialization' * parse.y (start_complete_expand_method): New function. (java_expand_method_bodies): Likewise. (attach_init_test_initialization_flags): Likewise. (adjust_init_test_initialization): Likewise. (emit_test_initialization): Likewise. (java_complete_expand_methods): Nullify abstract and native method bodies. (java_complete_expand_method): New locals `fbody', `block_body' and `exception_copy.' Reorganized: directly return on empty method bodies, call `start_complete_expand_method', remember definitely initialized static class in function, don't expand method bodies. (java_expand_classes): Call `java_expand_method_bodies' before `finish_class' when compiling to native. (resolve_expression_name): Use `orig' after building outer class field access. (patch_invoke): Remember static method invokations. (http://gcc.gnu.org/ml/gcc-patches/2001-08/msg00454.html) From-SVN: r44733 --- gcc/java/ChangeLog | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) (limited to 'gcc/java/ChangeLog') diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog index 5273aaf..7734a5f 100644 --- a/gcc/java/ChangeLog +++ b/gcc/java/ChangeLog @@ -1,3 +1,56 @@ +2001-08-08 Alexandre Petit-Bianco + + * check-init.c (flags.h): Include + (check_init): Don't report uninitialized static class + initialization flags, don't free bit index when doing static class + initialization optimization. + (check_for_initialization): Return type changed to `unsigned int.' + (attach_initialized_static_class): New function. + * class.c (add_method_1): Create the initialized static class + table if necessary. + (finish_class): Always emit deferred inline methods. + * decl.c (emit_init_test_initialization): Moved to expr.c + (complete_start_java_method): Don't traverse + DECL_FUNCTION_INIT_TEST_TABLE. + (lang_mark_tree): Mark hash tables in function decls. + * expr.c (emit_init_test_initialization): Moved from decl.c. + (build_class_init): Create LAG_DECL_SPECIFIC for the static class + initialization flag, set DECL_CONTEXT and + LOCAL_CLASS_INITIALIZATION_FLAG. + (java_lang_expand_expr): Emit initialization code for static class + initialized flags when entering block, if necessary. + * gcj.texi (-fno-optimize-static-class-initialization): Documented. + * java-tree.h (flag_optimize_sci): New global variable declaration. + (DECL_FUNCTION_INITIALIZED_CLASS_TABLE): New macro. + (DECL_FUNCTION_STATIC_METHOD_INVOCATION_COMPOUND): Likewise. + (LOCAL_FINAL_P): Fixed typo in comment. + (FINAL_VARIABLE_P): Likewise. + (LOCAL_CLASS_INITIALIZATIO_FLAG): New macro. + (LOCAL_CLASS_INITIALIZATIO_FLAG_P): Likewise. + (struct lang_decl): New fields `ict', `smic' and `cif.' + (check_for_initialization): New returned value for global. + (attach_initialized_static_class): New global function. + (STATIC_CLASS_INIT_OPT_P): New macro. + * lang-options.h (-fno-optimize-static-class-initialization): New flag. + * lang.c (java_decode_option): Handle + `-fno-optimize-static-class-initialization' + * parse.y (start_complete_expand_method): New function. + (java_expand_method_bodies): Likewise. + (attach_init_test_initialization_flags): Likewise. + (adjust_init_test_initialization): Likewise. + (emit_test_initialization): Likewise. + (java_complete_expand_methods): Nullify abstract and native method + bodies. + (java_complete_expand_method): New locals `fbody', `block_body' + and `exception_copy.' Reorganized: directly return on empty method + bodies, call `start_complete_expand_method', remember definitely + initialized static class in function, don't expand method bodies. + (java_expand_classes): Call `java_expand_method_bodies' before + `finish_class' when compiling to native. + (resolve_expression_name): Use `orig' after building outer class + field access. + (patch_invoke): Remember static method invokations. + 2001-08-06 Richard Henderson * class.c (emit_register_classes): Pass a symbol_ref and priority -- cgit v1.1