00001 /* -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 00002 // $Id: has_clinit_pass.h,v 1.2 2000/07/24 00:32:56 brm Exp $ 00003 00004 #ifndef CIPASS__HAS_CLINIT_PASS 00005 #define CIPASS__HAS_CLINIT_PASS 00006 00007 #include "common/suif_list.h" 00008 #include "suifkernel/suifkernel_forwarders.h" 00009 #include "suifkernel/suif_env.h" 00010 #include "suifkernel/suif_object.h" 00011 #include "suifpasses/suifpasses.h" 00012 #include "basicnodes/basic.h" 00013 #include "suifnodes/suif.h" 00014 #include "cfenodes/cfe.h" 00015 #include "osuifutilities/pass_utils.h" 00016 #include "osuifnodes/osuif.h" 00017 #include "osuifextensionnodes/osuifextension.h" 00018 #include "vtblnodes/vtbl_utils.h" 00019 #include "j2snodes/j2s.h" 00020 00021 00022 class HasClinitPass : public CollectWalkerPass<JavaStaticMethodSymbol> 00023 { 00024 private: 00025 list<ClassType* > _ctypes; 00026 00027 bool _verbose; 00028 00029 public: 00030 HasClinitPass( SuifEnv* env, const LString& name= "has_clinit_method" ); 00031 virtual ~HasClinitPass() { } 00032 00033 virtual void initialize_flags(); 00034 virtual void initialize(); 00035 virtual bool parse_command_line(TokenStream *command_line_stream); 00036 00037 virtual void postprocess(); 00038 virtual void process_suif_object( JavaStaticMethodSymbol* msym ); 00039 }; 00040 00041 00042 #endif