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

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

Go to the documentation of this file.
00001 /* -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
00002 // $Id: constantprop_pass.h,v 1.2 2000/07/24 00:33:27 brm Exp $
00003 
00004 #ifndef LOCALPROP__CONSTANTPROP_PASS
00005 #define LOCALPROP__CONSTANTPROP_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 LocalConstPropPass : public CollectWalkerPass<ProcedureDefinition>
00024 {
00025 private:
00026   suif_map<VariableSymbol*, Expression* > _map;
00027   bool _verbose;
00028   
00029 public:
00030   LocalConstPropPass( SuifEnv* env, const
00031                      LString& name= "do_j2s_local_constant_propagation" );
00032   virtual ~LocalConstPropPass()  { }
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_load_variable_expr( LoadVariableExpression* expr );
00039   virtual void replace_execution_object( ExecutionObject* eo );
00040 
00041   virtual bool is_bb_boundary( Statement* stmt );
00042   virtual bool is_idempotent_expr( Expression* expr );
00043 
00044   virtual void bb_preprocess();
00045   virtual void bb_postprocess();
00046   virtual void handle_statement(  Statement* stmt );
00047 
00048   Expression* find( VariableSymbol* vsym );
00049 
00050   virtual void process_suif_object( ProcedureDefinition* pdef );
00051 };
00052 
00053 
00054 #endif

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