pi_cond_jmp_rewriter.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \author jaz
00006 */
00007 
00008 #ifndef lestes__backend_v2__workers__pi_cond_jmp_rewriter_g_hh__included
00009 #define lestes__backend_v2__workers__pi_cond_jmp_rewriter_g_hh__included
00010 
00011 #include <lestes/backend_v2/common.hh>
00012 #include <lestes/backend_v2/workers/worker_base.g.hh>
00013 
00014 #include <lestes/std/objectize_macros.hh>
00015 package(lestes);
00016 package(backend_v2);
00017 package(structs);
00018 class func_data;
00019 end_package(structs);
00020 end_package(backend_v2);
00021 end_package(lestes);
00022 
00023 package(lestes);
00024 package(backend_v2);
00025 package(workers);
00026 
00027 
00028 class pi_cond_jmp_rewriter;
00029 
00030 
00031 /*! \brief Performs conditional jump rewriting.
00032 
00033 A sequence like this (that are generated by the front-end):
00034         
00035                 cmp_res = cmp(a,b)
00036                 boolean_res = set_boolean_if_greater(cmp_res)
00037                 jump_if_false(label)
00038         
00039         rewrites to:
00040         
00041                 cmp_res  = cmp(a,b)
00042                 jump_if_not_greater(cmp_res)
00043                 
00044         The result contains     one less instruction and a target architecture likely supports
00045         instruction jump_if_not_greater.
00046                 
00047 */
00048 class pi_cond_jmp_rewriter : public worker_base {
00049 public:
00050         void process();
00051 
00052         ptr< ::lestes::backend_v2::structs::func_data > get_result();
00053 
00054         
00055         //! First generated factory method for class pi_cond_jmp_rewriter.
00056         static ptr< pi_cond_jmp_rewriter > create (
00057                 ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data);
00058 
00059         
00060 
00061         //! for purposes of dumping
00062         virtual ptr<reflection_list> reflection_get() const;
00063         //! for purposes of dumping
00064         virtual ptr<field_list_list> field_values_get() const;
00065         
00066 protected:
00067         //! Generated constructor for class pi_cond_jmp_rewriter.
00068         pi_cond_jmp_rewriter (
00069                 ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data);
00070 
00071         //! Marking routine for class pi_cond_jmp_rewriter. 
00072         virtual void gc_mark();
00073 
00074 private:
00075         static ptr<reflection_list> reflection;
00076         
00077 }; // pi_cond_jmp_rewriter
00078 
00079 
00080 end_package(workers);
00081 end_package(backend_v2);
00082 end_package(lestes);
00083 
00084 #endif // lestes__backend_v2__workers__pi_cond_jmp_rewriter_g_hh__included

Generated on Mon Feb 12 18:23:07 2007 for lestes by doxygen 1.5.1-20070107