00001 // $Id: vtbl_pass.h,v 1.1.1.1 2000/06/08 00:10:03 afikes Exp $ 00002 00003 #ifndef VTBL__VTBL_PASS_H 00004 #define VTBL__VTBL_PASS_H 00005 00006 #include "suifkernel/suifkernel_forwarders.h" 00007 #include "suifkernel/suif_env.h" 00008 #include "suifkernel/suif_object.h" 00009 #include "suifpasses/suifpasses.h" 00010 #include "basicnodes/basic.h" 00011 #include "suifnodes/suif.h" 00012 #include "cfenodes/cfe.h" 00013 #include "osuifutilities/pass_utils.h" 00014 #include "osuifnodes/osuif.h" 00015 #include "osuifextensionnodes/osuifextension.h" 00016 #include "vtblnodes/vtbl_utils.h" 00017 00018 00019 class VtblPass : public CollectWalkerPass<ClassType> 00020 { 00021 private: 00022 SingleInheritanceVtbls* _vtbl_constr; 00023 00024 bool _construct_vtbl; 00025 bool _attach_vtbl_slot_number_annotes; 00026 bool _verbose; 00027 00028 public: 00029 VtblPass( SuifEnv* env, 00030 const LString& name= "build_single_inheritance_vtbl" ); 00031 virtual ~VtblPass() { } 00032 00033 virtual void initialize_flags(); 00034 virtual void initialize(); 00035 virtual bool parse_command_line(TokenStream *command_line_stream); 00036 00037 virtual void process_suif_object( ClassType* ctype ); 00038 }; 00039 00040 00041 #endif /* VTBL__VTBL_PASS_H */