Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

nci/suif/suif2b/j2s/localprop/copyprop_pass.h

Go to the documentation of this file.
00001 /* -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
00002 // $Id: copyprop_pass.h,v 1.2 2000/07/24 00:33:27 brm Exp $
00003 
00004 #ifndef LOCALCOPYPROP__COPYPROP_PASS
00005 #define LOCALCOPYPROP__COPYPROP_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 #include "common/suif_map.h"
00021 
00022 
00023 class LocalCopyPropPass : public CollectWalkerPass<ProcedureDefinition>
00024 {
00025 private:
00026   suif_map<VariableSymbol*, VariableSymbol* > _map;
00027   bool _verbose;
00028   
00029 public:
00030   LocalCopyPropPass( SuifEnv* env, const
00031                      LString& name= "do_j2s_local_copy_propagation" );
00032   virtual ~LocalCopyPropPass()  { }
00033 
00034   virtual void initialize_flags();
00035   virtual void initialize();
00036   virtual bool parse_command_line(TokenStream *command_line_stream);
00037 
00038   virtual void replace_variable_symbol( SuifObject* referent,
00039                                         VariableSymbol* vsym );
00040   virtual void replace_execution_object( ExecutionObject* eo );
00041   virtual void visit( ExecutionObject* eo );
00042 
00043   virtual bool is_bb_boundary( Statement* stmt );
00044 
00045   virtual void bb_preprocess();
00046   virtual void bb_postprocess();
00047   virtual void handle_statement(  Statement* stmt );
00048 
00049   VariableSymbol* find( VariableSymbol* vsym );
00050 
00051   virtual void process_suif_object( ProcedureDefinition* pdef );
00052 };
00053 
00054 
00055 #endif

Generated at Mon Jul 31 13:42:15 2000 for NCI SUIF by doxygen 1.1.2 written by Dimitri van Heesch, © 1997-2000