00001 /* -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 00002 // $Id: ci_check_elim_pass.h,v 1.2 2000/07/24 00:32:55 brm Exp $ 00003 00004 #ifndef CIPASS__CI_CHECK_ELIM_PASS 00005 #define CIPASS__CI_CHECK_ELIM_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 CiCheckElimPass : public CollectWalkerPass<CIAnnote> 00023 { 00024 private: 00025 bool _verbose; 00026 00027 protected: 00028 IInteger _removed_checks; 00029 00030 public: 00031 CiCheckElimPass( SuifEnv* env, const LString& name= "eliminate_ci_checks" ); 00032 virtual ~CiCheckElimPass() { } 00033 00034 Module *clone() const { return new CiCheckElimPass(_suif_env); } 00035 00036 virtual void initialize_flags(); 00037 virtual void initialize(); 00038 virtual bool parse_command_line(TokenStream *command_line_stream); 00039 00040 virtual void remove_execution_object( ExecutionObject* eo ); 00041 00042 virtual void postprocess(); 00043 virtual void process_suif_object( CIAnnote* annote ); 00044 }; 00045 00046 00047 #endif