#include "run-time.h"

/* Typedefs for referenced classes */

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
  D incremental_gf_module_;
  D incremental_gf_domain_info_;
  D incremental_gf_method_libraries_;
  D incremental_gf_properties_;
} _KLincremental_generic_functionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLfunction_classGVKi;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLclassGVKd;

#define  define__KLmm_wrapperGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D mm_wrapper_implementation_class_; \
    D mm_wrapper_subtype_mask_; \
    DWORD mm_wrapper_fixed_part_; \
    DWORD mm_wrapper_variable_part_; \
    D mm_wrapper_number_patterns_; \
    DWORD mm_wrapper_pattern_element_[nrepeated+1]; \
  } _KLmm_wrapperGVKi_##nrepeated;
define__KLmm_wrapperGVKi(1);
define__KLmm_wrapperGVKi(0);

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    D vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(3);
define__KLsimple_object_vectorGVKd(16);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(4);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(0);

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
} _KLsealed_generic_functionGVKe;

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(10);
define__KLbyte_stringGVKd(11);
define__KLbyte_stringGVKd(2);
define__KLbyte_stringGVKd(25);
define__KLbyte_stringGVKd(26);
define__KLbyte_stringGVKd(21);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(23);
define__KLbyte_stringGVKd(6);
define__KLbyte_stringGVKd(16);
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(29);

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLempty_listGVKd;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLobject_signatureGVKe;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
} _KLabsent_engine_nodeGVKg;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLpairGVKd;

typedef struct {
  D wrapper;
  D symbol_name_;
} _KLsymbolGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
} _KLsimple_methodGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLsignatureGVKe;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D entry_state_;
  D body_;
  D protected_end_;
  D cleanups_;
  D cleanups_end_;
} _KLunwind_protectGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D entry_state_;
  D body_;
  D Plabel_;
} _KLbind_exitGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D Plabel_;
  D loop_merges_;
  D loop_body_;
} _KLloopGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D class_properties_;
  D iclass_class_;
  D class_mm_wrapper_;
  D repeated_slot_descriptor_;
  D instance_slot_descriptors_;
  D iclass_dispatch_key_;
  D class_constructor_;
  D direct_superclasses_;
  D class_rcpl_vector_;
  D class_rcpl_position_;
  D class_rcpl_other_positions_;
  D class_known_joint_;
  D iclass_dependent_generics_;
  D iclass_subclass_dependent_generics_;
  D direct_subclasses_;
  D direct_methods_;
  D direct_slot_descriptors_;
  D slot_descriptors_;
  D direct_inherited_slot_descriptors_;
  D direct_initialization_argument_descriptors_;
  D class_slot_descriptors_;
  D defaulted_initialization_arguments_slot_;
  D class_slot_storage_;
} _KLimplementation_classGVKe;

typedef struct {
  D wrapper;
  D slot_descriptor_properties_;
  D init_data_slot_;
  D slot_owner_;
  D init_keyword_;
  D slot_getter_;
  D slot_setter_;
  D slot_type_;
} _KLinstance_slot_descriptorGVKe;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D test_;
  D consequent_;
  D alternative_;
} _KLifGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D xep_;
  D method_slot_descriptor_;
} _KLgetter_methodGVKi;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D union_type1_;
  D union_type2_;
} _KLunionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D singleton_object_;
} _KLsingletonGVKd;

typedef struct {
  D wrapper;
  D stretchy_representation_;
} _KLstretchy_object_vectorGVKe;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
  D iep_;
  D keyword_specifiers_;
} _KLkeyword_methodGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_keys_;
  D signature_key_types_;
  D signature_values_;
} _KLkeyword_signatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D namespace_name_;
  D home_library_;
} _KLmoduleGVKe;

#define  define__KLsimple_closure_methodGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D xep_; \
    D function_signature_; \
    D mep_; \
    D environment_size_; \
    D environment_element_[nrepeated+1]; \
  } _KLsimple_closure_methodGVKi_##nrepeated;
define__KLsimple_closure_methodGVKi(0);

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_values_;
} _KLsignatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D computation_slot_descriptor_;
  D computation_instance_;
} _KLslot_valueGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D arguments_;
  D primitive_;
} _KLprimitive_callGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D users_;
  D reference_value_;
} _KLobject_referenceGVdfmc_flow_graph;

typedef struct {
  D wrapper;
} _KLbinding_referenceGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D users_;
  D generator_;
  D environment_;
  D temporary_properties_;
} _KLtemporaryGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
  D merge_left_value_;
  D merge_right_value_;
  D merge_left_previous_computation_;
  D merge_right_previous_computation_;
} _KLloop_mergeGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D item_properties_;
  D computation_source_location_;
  D previous_computation_;
  D next_computation_;
  D temporary_;
  D environment_;
  D computation_type_;
} _KLcomputationGVdfmc_flow_graph;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D Craw_object_value_;
} _KLBraw_machine_wordGVdfmc_modeling;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
  D cache_header_engine_node_next_;
  D cache_header_engine_node_parent_;
} _KLsimple_typechecked_cache_header_engine_nodeGVKg;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D users_;
  D private_Cfunction_signature_;
  D Pmep_;
  D private_debug_name_;
  D function_properties_;
  D private_signature_spec_;
  D parameters_dynamic_extent_;
  D private_lambda_heap_;
  D private_lambda_body_;
} _KLBlambdaGVdfmc_modeling;

#define  define__KLstandalone_domainGVKe(nrepeated) \
  typedef struct { \
    D wrapper; \
    D domain_library_; \
    D domain_next_; \
    D domain_number_required_; \
    D domain_type_[nrepeated+1]; \
  } _KLstandalone_domainGVKe_##nrepeated;
define__KLstandalone_domainGVKe(1);

typedef struct {
  D wrapper;
  D namespace_name_;
  D library_major_version_;
  D library_minor_version_;
  D library_build_count_;
  D used_libraries_;
  D all_used_libraries_;
  D runtime_module_;
  D library_defined_generics_;
  D library_number_static_dispatches_;
  D library_number_dynamic_dispatches_;
} _KLlibraryGVKe;


/* Typedefs for defined classes */

typedef struct {
  D wrapper;
  D reusable_computations_;
  D dominating_state_;
} _KLcse_stateGVdfmc_optimization;

typedef struct {
  D wrapper;
  D reusable_computations_;
  D dominating_state_;
  D cse_if_;
} _KLcse_consequent_if_stateGVdfmc_optimization;

typedef struct {
  D wrapper;
  D reusable_computations_;
  D dominating_state_;
  D cse_if_;
} _KLcse_alternative_if_stateGVdfmc_optimization;

typedef struct {
  D wrapper;
  D reusable_computations_;
  D dominating_state_;
  D cse_if_;
} _KLcse_if_stateGVdfmc_optimization;


/* Referenced object declarations */

D KPadd_classVKeI (D);
D KPadd_nonsiblinged_domainVKnI (D, D);
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLincremental_generic_functionGVKe KinitializeVKd;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLsealed_generic_functionGVKe KbodyVdfmc_modeling;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
D Kformat_outYformat_outVioMM0I (D, D);
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLsealed_generic_functionGVKe Knext_computationVdfmc_flow_graph;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLunwind_protectGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLunwind_protectGVdfmc_flow_graphW;
extern _KLclassGVKd KLbind_exitGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLbind_exitGVdfmc_flow_graphW;
extern _KLclassGVKd KLloopGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLloopGVdfmc_flow_graphW;
D Kconstant_fold_ifVdfmc_optimizationMM0I (D, D);
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLclassGVKd KLifGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLifGVdfmc_flow_graphW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
D KerrorVKdMM1I (D, D);
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
D Kunion_instanceQVKiI (D, D);
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
D Ksingleton_pointer_idQ_instanceQVKiI (D, D);
D KLstretchy_object_vectorGZ32ZconstructorVKiMM0I (D, D);
extern _KLclassGVKd KLstretchy_object_vectorGVKe;
extern _KLmm_wrapperGVKi_0 KLstretchy_object_vectorGVKeW;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
D Kclass_instanceQ_rcpl_single_smallVKiI (D, D);
extern _KLmoduleGVKe Kdfmc_optimization_moduleYdylan_userVdfmc_optimization;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
D Kclass_instanceQ_initialVKiI (D, D);
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLclassGVKd KLslot_valueGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLslot_valueGVdfmc_flow_graphW;
extern _KLsimple_methodGVKe Kprimitive_statelessQVdfmc_modelingMM0;
extern _KLclassGVKd KLprimitive_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLprimitive_callGVdfmc_flow_graphW;
extern _KLclassGVKd KLobject_referenceGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLobject_referenceGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe Kreferenced_bindingVdfmc_flow_graph;
extern _KLsealed_generic_functionGVKe KconstantQVdfmc_namespace;
extern _KLclassGVKd KLbinding_referenceGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLbinding_referenceGVdfmc_flow_graphW;
extern _KLclassGVKd KLtemporaryGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLtemporaryGVdfmc_flow_graphW;
extern _KLclassGVKd KLloop_mergeGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLloop_mergeGVdfmc_flow_graphW;
extern _KLclassGVKd KLcomputationGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLcomputationGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe KtemporaryVdfmc_flow_graph;
extern _KLsimple_methodGVKe Kreplace_computation_with_temporaryXVdfmc_flow_graphMM0;
extern _KLincremental_generic_functionGVKe Kforward_iteration_protocolVKd;
D KaddXVKdMM3I (D, D);
D KeveryQVKdMM0I (D, D, D);
D KEEVKdI (D, D);
extern _KLclassGVKd KLBraw_machine_wordGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBraw_machine_wordGVdfmc_modelingW;
extern _KLclassGVKd KLsimple_typechecked_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_cache_header_engine_nodeGVKgW;
extern _KLclassGVKd KLBlambdaGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBlambdaGVdfmc_modelingW;
extern _KLclassGVKd KLstandalone_domainGVKe;
extern _KLmm_wrapperGVKi_0 KLstandalone_domainGVKeW;
extern _KLlibraryGVKe Kdfmc_optimization_libraryYdylan_userVdfmc_optimization;
extern _KLclassGVKd KLlibraryGVKe;
extern _KLmm_wrapperGVKi_0 KLlibraryGVKeW;

/* Defined object declarations */

extern _KLclassGVKd KLcse_stateGVdfmc_optimization;
extern _KLmm_wrapperGVKi_0 KLcse_stateGVdfmc_optimizationW;
extern _KLstandalone_domainGVKe_1 KmakeVKdRD_dfmc_optimizationRD_0;
extern _KLstandalone_domainGVKe_1 KinitializeVKdRD_dfmc_optimizationRD_0;
extern _KLsimple_methodGVKe Kshare_common_subexpressionsVdfmc_optimizationMM0;
D Kshare_common_subexpressionsVdfmc_optimizationMM0I (D);
D KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I (D, D, D);
extern _KLsimple_methodGVKe Kcse_walk_computationsVdfmc_optimizationMM0;
D Kcse_walk_computationsVdfmc_optimizationMM0I (D, D, D);
static _KLbyte_stringGVKd_29 K12;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K13;
extern _KLsealed_generic_functionGVKe Kcse_walk_computationVdfmc_optimization;
extern _KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM0;
D Kcse_walk_computationVdfmc_optimizationMM0I (D, D);
extern _KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM1;
D Kcse_walk_computationVdfmc_optimizationMM1I (D, D);
extern _KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM2;
D Kcse_walk_computationVdfmc_optimizationMM2I (D, D);
extern _KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM3;
D Kcse_walk_computationVdfmc_optimizationMM3I (D, D);
extern _KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM4;
D Kcse_walk_computationVdfmc_optimizationMM4I (D, D);
static _KLpairGVKd K25;
static _KLpairGVKd K26;
static _KLpairGVKd K27;
static _KLpairGVKd K28;
static _KLpairGVKd K29;
static _KLbyte_stringGVKd_20 K30;
static _KLsymbolGVKd KJdominating_state_;
static _KLbyte_stringGVKd_16 K32;
static _KLsignatureGVKe K33;
static _KLsimple_object_vectorGVKd_2 K34;
static _KLsignatureGVKe K35;
static _KLsimple_object_vectorGVKd_2 K36;
static _KLsignatureGVKe K37;
static _KLsimple_object_vectorGVKd_2 K38;
D Kcse_lookup_reusable_if_testVdfmc_optimizationMM0I (D, D);
static _KLsymbolGVKd KJconsequent_;
static _KLsymbolGVKd KJalternative_;
static _KLsymbolGVKd KJif_;
extern _KLclassGVKd KLcse_consequent_if_stateGVdfmc_optimization;
extern _KLmm_wrapperGVKi_0 KLcse_consequent_if_stateGVdfmc_optimizationW;
extern _KLclassGVKd KLcse_alternative_if_stateGVdfmc_optimization;
extern _KLmm_wrapperGVKi_0 KLcse_alternative_if_stateGVdfmc_optimizationW;
static _KLimplementation_classGVKe K47;
static _KLsimple_object_vectorGVKd_3 K48;
extern _KLkeyword_methodGVKe KLcse_alternative_if_stateGZ32ZconstructorVdfmc_optimizationMM0;
D KLcse_alternative_if_stateGZ32ZconstructorVdfmc_optimizationMM0I (D, D, D, D);
static _KLsimple_object_vectorGVKd_1 K51;
static _KLsimple_object_vectorGVKd_6 K52;
extern _KLclassGVKd KLcse_if_stateGVdfmc_optimization;
extern _KLmm_wrapperGVKi_0 KLcse_if_stateGVdfmc_optimizationW;
static _KLimplementation_classGVKe K55;
extern _KLkeyword_methodGVKe KLcse_if_stateGZ32ZconstructorVdfmc_optimizationMM0;
D KLcse_if_stateGZ32ZconstructorVdfmc_optimizationMM0I (D, D, D, D);
static _KLsimple_object_vectorGVKd_1 K58;
static _KLsimple_object_vectorGVKd_6 K59;
static _KLsimple_object_vectorGVKd_1 K60;
extern _KLinstance_slot_descriptorGVKe Kcse_ifVdfmc_optimizationHLcse_if_stateG;
extern _KLsealed_generic_functionGVKe Kcse_ifVdfmc_optimization;
extern _KLgetter_methodGVKi Kcse_ifVdfmc_optimizationMM0;
static _KLpairGVKd K64;
static _KLbyte_stringGVKd_6 K65;
static _KLbyte_stringGVKd_23 K66;
static D K70I ();
static _KLunionGVKe K68;
static _KLsingletonGVKd K69;
static _KLkeyword_signatureAvaluesGVKi K71;
static _KLsimple_object_vectorGVKd_4 K72;
static _KLsimple_object_vectorGVKd_2 K73;
static _KLbyte_stringGVKd_14 K74;
static D K76I ();
static _KLkeyword_signatureAvaluesGVKi K77;
static _KLsimple_object_vectorGVKd_1 K78;
extern _KLinstance_slot_descriptorGVKe Kreusable_computationsVdfmc_optimizationHLcse_stateG;
extern _KLinstance_slot_descriptorGVKe Kdominating_stateVdfmc_optimizationHLcse_stateG;
extern _KLsealed_generic_functionGVKe Kdominating_stateVdfmc_optimization;
extern _KLgetter_methodGVKi Kdominating_stateVdfmc_optimizationMM0;
static _KLpairGVKd K83;
static _KLsimple_closure_methodGVKi_0 K90;
static D K90I ();
extern _KLsealed_generic_functionGVKe Kreusable_computationsVdfmc_optimization;
extern _KLgetter_methodGVKi Kreusable_computationsVdfmc_optimizationMM0;
static _KLpairGVKd K88;
static _KLbyte_stringGVKd_21 K89;
static _KLsignatureGVKe K91;
static _KLbyte_stringGVKd_26 K92;
static _KLimplementation_classGVKe K93;
extern _KLkeyword_methodGVKe KLcse_consequent_if_stateGZ32ZconstructorVdfmc_optimizationMM0;
D KLcse_consequent_if_stateGZ32ZconstructorVdfmc_optimizationMM0I (D, D, D, D);
static _KLsimple_object_vectorGVKd_6 K96;
static D K98I ();
static _KLkeyword_signatureAvaluesGVKi K99;
static _KLsimple_object_vectorGVKd_1 K100;
static _KLbyte_stringGVKd_25 K101;
static _KLbyte_stringGVKd_2 K102;
static _KLbyte_stringGVKd_11 K103;
static _KLbyte_stringGVKd_10 K104;
extern _KLsealed_generic_functionGVKe Kreusable_computationQVdfmc_optimization;
extern _KLsealed_generic_functionGVKe Kcse_if_state_directionVdfmc_optimization;
static _KLunionGVKe K107;
extern _KLsimple_methodGVKe Kcse_if_state_directionVdfmc_optimizationMM0;
D Kcse_if_state_directionVdfmc_optimizationMM0I (D);
extern _KLsimple_methodGVKe Kcse_if_state_directionVdfmc_optimizationMM1;
D Kcse_if_state_directionVdfmc_optimizationMM1I (D);
static _KLpairGVKd K112;
static _KLpairGVKd K113;
static _KLbyte_stringGVKd_22 K114;
static _KLsignatureAvaluesGVKi K115;
static _KLsimple_object_vectorGVKd_1 K116;
static _KLsignatureAvaluesGVKi K117;
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM0;
D Kreusable_computationQVdfmc_optimizationMM0I (D);
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM1;
D Kreusable_computationQVdfmc_optimizationMM1I (D);
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM2;
D Kreusable_computationQVdfmc_optimizationMM2I (D);
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM3;
D Kreusable_computationQVdfmc_optimizationMM3I (D);
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM4;
D Kreusable_computationQVdfmc_optimizationMM4I (D);
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM5;
D Kreusable_computationQVdfmc_optimizationMM5I (D);
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM6;
D Kreusable_computationQVdfmc_optimizationMM6I (D);
extern _KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM7;
D Kreusable_computationQVdfmc_optimizationMM7I (D);
static _KLpairGVKd K134;
static _KLpairGVKd K135;
static _KLpairGVKd K136;
static _KLpairGVKd K137;
static _KLpairGVKd K138;
static _KLpairGVKd K139;
static _KLpairGVKd K140;
static _KLpairGVKd K141;
static _KLbyte_stringGVKd_21 K142;
static _KLsignatureAvaluesGVKi K143;
static _KLsimple_object_vectorGVKd_1 K144;
static _KLsignatureAvaluesGVKi K145;
static _KLsimple_object_vectorGVKd_1 K146;
static _KLsignatureAvaluesGVKi K147;
static _KLsimple_object_vectorGVKd_1 K148;
static _KLsignatureAvaluesGVKi K149;
static _KLsimple_object_vectorGVKd_1 K150;
static _KLsignatureAvaluesGVKi K151;
static _KLsimple_object_vectorGVKd_1 K152;
static _KLsignatureAvaluesGVKi K153;
static _KLsimple_object_vectorGVKd_1 K154;
static _KLsignatureAvaluesGVKi K155;
static _KLsignatureAvaluesGVKi K156;
static _KLsimple_object_vectorGVKd_1 K157;
static _KLsignatureGVKe K158;
static _KLsimple_object_vectorGVKd_2 K159;
D Kintern_reusable_computationVdfmc_optimizationI (D, D);
extern _KLsealed_generic_functionGVKe Kequivalent_computationQVdfmc_optimization;
extern _KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM0;
D Kequivalent_computationQVdfmc_optimizationMM0I (D, D);
extern _KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM1;
D Kequivalent_computationQVdfmc_optimizationMM1I (D, D);
extern _KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM2;
D Kequivalent_computationQVdfmc_optimizationMM2I (D, D);
extern _KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM3;
D Kequivalent_computationQVdfmc_optimizationMM3I (D, D);
extern _KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM4;
D Kequivalent_computationQVdfmc_optimizationMM4I (D, D);
extern _KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM5;
D Kequivalent_computationQVdfmc_optimizationMM5I (D, D);
extern _KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM6;
D Kequivalent_computationQVdfmc_optimizationMM6I (D, D);
static _KLpairGVKd K176;
static _KLpairGVKd K177;
static _KLpairGVKd K178;
static _KLpairGVKd K179;
static _KLpairGVKd K180;
static _KLpairGVKd K181;
static _KLpairGVKd K182;
static _KLbyte_stringGVKd_23 K183;
static _KLsignatureAvaluesGVKi K184;
static _KLsimple_object_vectorGVKd_2 K185;
static _KLsignatureAvaluesGVKi K186;
static _KLsimple_object_vectorGVKd_2 K187;
static _KLsignatureAvaluesGVKi K188;
static _KLsimple_object_vectorGVKd_2 K189;
static _KLsignatureAvaluesGVKi K190;
static _KLsimple_object_vectorGVKd_2 K191;
static _KLsignatureAvaluesGVKi K192;
static _KLsimple_object_vectorGVKd_2 K193;
static _KLsignatureAvaluesGVKi K194;
static _KLsimple_object_vectorGVKd_2 K195;
static _KLsignatureAvaluesGVKi K196;
static _KLsignatureGVKe K197;
static _KLsimple_object_vectorGVKd_2 K198;
static _KLsignatureGVKe K199;
static _KLsimple_object_vectorGVKd_3 K200;
static _KLunionGVKe K201;
static D K203I ();
static _KLsignatureGVKe K204;
static _KLsimple_object_vectorGVKd_1 K205;
static _KLsingletonGVKd K206;
static _KLimplementation_classGVKe K207;
static _KLsimple_object_vectorGVKd_2 K208;
extern _KLkeyword_methodGVKe KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0;
static _KLsimple_object_vectorGVKd_1 K210;
static _KLsimple_object_vectorGVKd_6 K211;
static _KLkeyword_signatureAvaluesGVKi K212;
static _KLsimple_object_vectorGVKd_2 K213;
static _KLsimple_object_vectorGVKd_1 K214;
static _KLbyte_stringGVKd_11 K215;
static _KLpairGVKd K216;
static _KLpairGVKd K217;
static _KLpairGVKd K218;

/* Indirection variables */

static D IKJdominating_state_ = &KJdominating_state_;
static D IKJconsequent_ = &KJconsequent_;
static D IKJalternative_ = &KJalternative_;
static D IKJif_ = &KJif_;

/* Variables */

D share_common_subexpressionsVdfmc_optimization = &Kshare_common_subexpressionsVdfmc_optimizationMM0;
D Lcse_stateGVdfmc_optimization = &KLcse_stateGVdfmc_optimization;
D Lcse_if_stateGVdfmc_optimization = &KLcse_if_stateGVdfmc_optimization;
D Lcse_consequent_if_stateGVdfmc_optimization = &KLcse_consequent_if_stateGVdfmc_optimization;
D Lcse_alternative_if_stateGVdfmc_optimization = &KLcse_alternative_if_stateGVdfmc_optimization;

/* Objects */

_KLclassGVKd KLcse_stateGVdfmc_optimization = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_rcpl_single_smallVKiI,
  &K215,
  &K207,
  (D) 1,
  &Kdfmc_optimization_moduleYdylan_userVdfmc_optimization
};

_KLmm_wrapperGVKi_0 KLcse_stateGVdfmc_optimizationW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K207,
  (D) 1,
  9,
  33554439,
  (D) 1
};

_KLstandalone_domainGVKe_1 KmakeVKdRD_dfmc_optimizationRD_0 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdfmc_optimization_libraryYdylan_userVdfmc_optimization,
  &KPfalseVKi,
  (D) 5,
  &K206
};

_KLstandalone_domainGVKe_1 KinitializeVKdRD_dfmc_optimizationRD_0 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdfmc_optimization_libraryYdylan_userVdfmc_optimization,
  &KPfalseVKi,
  (D) 5,
  &KLcse_stateGVdfmc_optimization
};

_KLsimple_methodGVKe Kshare_common_subexpressionsVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K204,
  &Kshare_common_subexpressionsVdfmc_optimizationMM0I
};

_KLsimple_methodGVKe Kcse_walk_computationsVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K199,
  &Kcse_walk_computationsVdfmc_optimizationMM0I
};

static _KLbyte_stringGVKd_29 K12 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 117,
  "CSE found empty function: %=\n"
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K13 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (D) 131129,
  &KPfalseVKi,
  &cache_header_engine_2,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kcse_walk_computationVdfmc_optimization
};

_KLsealed_generic_functionGVKe Kcse_walk_computationVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (D) 9,
  &K30,
  &K25,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K197,
  &Kcse_walk_computationVdfmc_optimizationMM0I
};

_KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K158,
  &Kcse_walk_computationVdfmc_optimizationMM1I
};

_KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K37,
  &Kcse_walk_computationVdfmc_optimizationMM2I
};

_KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K35,
  &Kcse_walk_computationVdfmc_optimizationMM3I
};

_KLsimple_methodGVKe Kcse_walk_computationVdfmc_optimizationMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K33,
  &Kcse_walk_computationVdfmc_optimizationMM4I
};

static _KLpairGVKd K25 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_walk_computationVdfmc_optimizationMM0,
  &K26
};

static _KLpairGVKd K26 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_walk_computationVdfmc_optimizationMM1,
  &K27
};

static _KLpairGVKd K27 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_walk_computationVdfmc_optimizationMM2,
  &K28
};

static _KLpairGVKd K28 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_walk_computationVdfmc_optimizationMM3,
  &K29
};

static _KLpairGVKd K29 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_walk_computationVdfmc_optimizationMM4,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_20 K30 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 81,
  "cse-walk-computation"
};

static _KLsymbolGVKd KJdominating_state_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K32
};

static _KLbyte_stringGVKd_16 K32 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 65,
  "dominating-state"
};

static _KLsignatureGVKe K33 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K34
};

static _KLsimple_object_vectorGVKd_2 K34 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLunwind_protectGVdfmc_flow_graph,
  &KLcse_stateGVdfmc_optimization
};

static _KLsignatureGVKe K35 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K36
};

static _KLsimple_object_vectorGVKd_2 K36 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLbind_exitGVdfmc_flow_graph,
  &KLcse_stateGVdfmc_optimization
};

static _KLsignatureGVKe K37 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K38
};

static _KLsimple_object_vectorGVKd_2 K38 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLloopGVdfmc_flow_graph,
  &KLcse_stateGVdfmc_optimization
};

static _KLsymbolGVKd KJconsequent_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K104
};

static _KLsymbolGVKd KJalternative_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K103
};

static _KLsymbolGVKd KJif_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K102
};

_KLclassGVKd KLcse_consequent_if_stateGVdfmc_optimization = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K101,
  &K93,
  (D) 1,
  &Kdfmc_optimization_moduleYdylan_userVdfmc_optimization
};

_KLmm_wrapperGVKi_0 KLcse_consequent_if_stateGVdfmc_optimizationW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K93,
  (D) 1,
  13,
  33554439,
  (D) 1
};

_KLclassGVKd KLcse_alternative_if_stateGVdfmc_optimization = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K92,
  &K47,
  (D) 1,
  &Kdfmc_optimization_moduleYdylan_userVdfmc_optimization
};

_KLmm_wrapperGVKi_0 KLcse_alternative_if_stateGVdfmc_optimizationW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K47,
  (D) 1,
  13,
  33554439,
  (D) 1
};

static _KLimplementation_classGVKe K47 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 477102093,
  &KLcse_alternative_if_stateGVdfmc_optimization,
  &KLcse_alternative_if_stateGVdfmc_optimizationW,
  &KPfalseVKi,
  &K48,
  (D) -3,
  &KLcse_alternative_if_stateGZ32ZconstructorVdfmc_optimizationMM0,
  &K51,
  &K52,
  (D) 13,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K48,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_3 K48 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &Kreusable_computationsVdfmc_optimizationHLcse_stateG,
  &Kdominating_stateVdfmc_optimizationHLcse_stateG,
  &Kcse_ifVdfmc_optimizationHLcse_if_stateG
};

_KLkeyword_methodGVKe KLcse_alternative_if_stateGZ32ZconstructorVdfmc_optimizationMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K77,
  &key_mep_2,
  &KLcse_alternative_if_stateGZ32ZconstructorVdfmc_optimizationMM0I,
  &K72
};

static _KLsimple_object_vectorGVKd_1 K51 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLcse_if_stateGVdfmc_optimization
};

static _KLsimple_object_vectorGVKd_6 K52 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLcse_stateGVdfmc_optimization,
  &KLcse_if_stateGVdfmc_optimization,
  &KLcse_alternative_if_stateGVdfmc_optimization,
  &KPfalseVKi,
  &KPfalseVKi
};

_KLclassGVKd KLcse_if_stateGVdfmc_optimization = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_rcpl_single_smallVKiI,
  &K74,
  &K55,
  (D) 1,
  &Kdfmc_optimization_moduleYdylan_userVdfmc_optimization
};

_KLmm_wrapperGVKi_0 KLcse_if_stateGVdfmc_optimizationW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K55,
  (D) 1,
  13,
  33554439,
  (D) 1
};

static _KLimplementation_classGVKe K55 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527958029,
  &KLcse_if_stateGVdfmc_optimization,
  &KLcse_if_stateGVdfmc_optimizationW,
  &KPfalseVKi,
  &K48,
  (D) -3,
  &KLcse_if_stateGZ32ZconstructorVdfmc_optimizationMM0,
  &K58,
  &K59,
  (D) 9,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &K217,
  &KPempty_vectorVKi,
  &K60,
  &K48,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

_KLkeyword_methodGVKe KLcse_if_stateGZ32ZconstructorVdfmc_optimizationMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K71,
  &key_mep_2,
  &KLcse_if_stateGZ32ZconstructorVdfmc_optimizationMM0I,
  &K72
};

static _KLsimple_object_vectorGVKd_1 K58 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLcse_stateGVdfmc_optimization
};

static _KLsimple_object_vectorGVKd_6 K59 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLcse_stateGVdfmc_optimization,
  &KLcse_if_stateGVdfmc_optimization,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLsimple_object_vectorGVKd_1 K60 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &Kcse_ifVdfmc_optimizationHLcse_if_stateG
};

_KLinstance_slot_descriptorGVKe Kcse_ifVdfmc_optimizationHLcse_if_stateG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLcse_if_stateGVdfmc_optimization,
  &KJif_,
  &Kcse_ifVdfmc_optimization,
  &KPfalseVKi,
  &KLifGVdfmc_flow_graph
};

_KLsealed_generic_functionGVKe Kcse_ifVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K65,
  &K64,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kcse_ifVdfmc_optimizationMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kcse_ifVdfmc_optimizationHLcse_if_stateG
};

static _KLpairGVKd K64 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_ifVdfmc_optimizationMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_6 K65 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 25,
  "cse-if"
};

static _KLbyte_stringGVKd_23 K66 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 93,
  "Missing init keyword %="
};

static _KLunionGVKe K68 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K69,
  &KLcse_stateGVdfmc_optimization
};

static _KLsingletonGVKd K69 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K71 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K73,
  &KDsignature_LobjectG_typesVKi,
  &K51
};

static _KLsimple_object_vectorGVKd_4 K72 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KJdominating_state_,
  &KPfalseVKi,
  &KJif_,
  &KPunboundVKi
};

static _KLsimple_object_vectorGVKd_2 K73 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJdominating_state_,
  &KJif_
};

static _KLbyte_stringGVKd_14 K74 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 57,
  "<cse-if-state>"
};

static _KLkeyword_signatureAvaluesGVKi K77 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K73,
  &KDsignature_LobjectG_typesVKi,
  &K78
};

static _KLsimple_object_vectorGVKd_1 K78 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLcse_alternative_if_stateGVdfmc_optimization
};

_KLinstance_slot_descriptorGVKe Kreusable_computationsVdfmc_optimizationHLcse_stateG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 149,
  &K90,
  &KLcse_stateGVdfmc_optimization,
  &KPfalseVKi,
  &Kreusable_computationsVdfmc_optimization,
  &KPfalseVKi,
  &KLstretchy_object_vectorGVKe
};

_KLinstance_slot_descriptorGVKe Kdominating_stateVdfmc_optimizationHLcse_stateG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 157,
  &KPfalseVKi,
  &KLcse_stateGVdfmc_optimization,
  &KJdominating_state_,
  &Kdominating_stateVdfmc_optimization,
  &KPfalseVKi,
  &K68
};

_KLsealed_generic_functionGVKe Kdominating_stateVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K32,
  &K83,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kdominating_stateVdfmc_optimizationMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kdominating_stateVdfmc_optimizationHLcse_stateG
};

static _KLpairGVKd K83 = {
  &KLpairGVKdW /* wrapper */,
  &Kdominating_stateVdfmc_optimizationMM0,
  &KPempty_listVKi
};

static _KLsimple_closure_methodGVKi_0 K90 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K91,
  &K90I,
  (D) 1
};

_KLsealed_generic_functionGVKe Kreusable_computationsVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K89,
  &K88,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kreusable_computationsVdfmc_optimizationMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kreusable_computationsVdfmc_optimizationHLcse_stateG
};

static _KLpairGVKd K88 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationsVdfmc_optimizationMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_21 K89 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 85,
  "reusable-computations"
};

static _KLsignatureGVKe K91 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41944065,
  &KPempty_vectorVKi
};

static _KLbyte_stringGVKd_26 K92 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 105,
  "<cse-alternative-if-state>"
};

static _KLimplementation_classGVKe K93 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 477102093,
  &KLcse_consequent_if_stateGVdfmc_optimization,
  &KLcse_consequent_if_stateGVdfmc_optimizationW,
  &KPfalseVKi,
  &K48,
  (D) -3,
  &KLcse_consequent_if_stateGZ32ZconstructorVdfmc_optimizationMM0,
  &K51,
  &K96,
  (D) 13,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K48,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

_KLkeyword_methodGVKe KLcse_consequent_if_stateGZ32ZconstructorVdfmc_optimizationMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K99,
  &key_mep_2,
  &KLcse_consequent_if_stateGZ32ZconstructorVdfmc_optimizationMM0I,
  &K72
};

static _KLsimple_object_vectorGVKd_6 K96 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLcse_stateGVdfmc_optimization,
  &KLcse_if_stateGVdfmc_optimization,
  &KLcse_consequent_if_stateGVdfmc_optimization,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K99 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K73,
  &KDsignature_LobjectG_typesVKi,
  &K100
};

static _KLsimple_object_vectorGVKd_1 K100 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLcse_consequent_if_stateGVdfmc_optimization
};

static _KLbyte_stringGVKd_25 K101 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 101,
  "<cse-consequent-if-state>"
};

static _KLbyte_stringGVKd_2 K102 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 9,
  "if"
};

static _KLbyte_stringGVKd_11 K103 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 45,
  "alternative"
};

static _KLbyte_stringGVKd_10 K104 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 41,
  "consequent"
};

_KLsealed_generic_functionGVKe Kreusable_computationQVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  (D) 1,
  &K142,
  &K134,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Kcse_if_state_directionVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  (D) 1,
  &K114,
  &K112,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLunionGVKe K107 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K69,
  &KLsymbolGVKd
};

_KLsimple_methodGVKe Kcse_if_state_directionVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K117,
  &Kcse_if_state_directionVdfmc_optimizationMM0I
};

_KLsimple_methodGVKe Kcse_if_state_directionVdfmc_optimizationMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K115,
  &Kcse_if_state_directionVdfmc_optimizationMM1I
};

static _KLpairGVKd K112 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_if_state_directionVdfmc_optimizationMM0,
  &K113
};

static _KLpairGVKd K113 = {
  &KLpairGVKdW /* wrapper */,
  &Kcse_if_state_directionVdfmc_optimizationMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_22 K114 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 89,
  "cse-if-state-direction"
};

static _KLsignatureAvaluesGVKi K115 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K78,
  &K116
};

static _KLsimple_object_vectorGVKd_1 K116 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLsymbolGVKd
};

static _KLsignatureAvaluesGVKi K117 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K100,
  &K116
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K156,
  &Kreusable_computationQVdfmc_optimizationMM0I
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K155,
  &Kreusable_computationQVdfmc_optimizationMM1I
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K153,
  &Kreusable_computationQVdfmc_optimizationMM2I
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K151,
  &Kreusable_computationQVdfmc_optimizationMM3I
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K149,
  &Kreusable_computationQVdfmc_optimizationMM4I
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM5 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K147,
  &Kreusable_computationQVdfmc_optimizationMM5I
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM6 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K145,
  &Kreusable_computationQVdfmc_optimizationMM6I
};

_KLsimple_methodGVKe Kreusable_computationQVdfmc_optimizationMM7 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K143,
  &Kreusable_computationQVdfmc_optimizationMM7I
};

static _KLpairGVKd K134 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM0,
  &K135
};

static _KLpairGVKd K135 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM1,
  &K136
};

static _KLpairGVKd K136 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM2,
  &K137
};

static _KLpairGVKd K137 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM3,
  &K138
};

static _KLpairGVKd K138 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM4,
  &K139
};

static _KLpairGVKd K139 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM5,
  &K140
};

static _KLpairGVKd K140 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM6,
  &K141
};

static _KLpairGVKd K141 = {
  &KLpairGVKdW /* wrapper */,
  &Kreusable_computationQVdfmc_optimizationMM7,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_21 K142 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 85,
  "reusable-computation?"
};

static _KLsignatureAvaluesGVKi K143 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K144,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K144 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLslot_valueGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K145 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K146,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K146 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLprimitive_callGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K147 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K148,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K148 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLobject_referenceGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K149 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K150,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K150 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLbinding_referenceGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K151 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K152,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K152 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLtemporaryGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K153 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K154,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K154 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLloop_mergeGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K155 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &KDsignature_LbooleanG_typesVKi,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsignatureAvaluesGVKi K156 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K157,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K157 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLcomputationGVdfmc_flow_graph
};

static _KLsignatureGVKe K158 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K159
};

static _KLsimple_object_vectorGVKd_2 K159 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLifGVdfmc_flow_graph,
  &KLcse_stateGVdfmc_optimization
};

_KLsealed_generic_functionGVKe Kequivalent_computationQVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (D) 1,
  &K183,
  &K176,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K196,
  &Kequivalent_computationQVdfmc_optimizationMM0I
};

_KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K194,
  &Kequivalent_computationQVdfmc_optimizationMM1I
};

_KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K192,
  &Kequivalent_computationQVdfmc_optimizationMM2I
};

_KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K190,
  &Kequivalent_computationQVdfmc_optimizationMM3I
};

_KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K188,
  &Kequivalent_computationQVdfmc_optimizationMM4I
};

_KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM5 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K186,
  &Kequivalent_computationQVdfmc_optimizationMM5I
};

_KLsimple_methodGVKe Kequivalent_computationQVdfmc_optimizationMM6 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K184,
  &Kequivalent_computationQVdfmc_optimizationMM6I
};

static _KLpairGVKd K176 = {
  &KLpairGVKdW /* wrapper */,
  &Kequivalent_computationQVdfmc_optimizationMM0,
  &K177
};

static _KLpairGVKd K177 = {
  &KLpairGVKdW /* wrapper */,
  &Kequivalent_computationQVdfmc_optimizationMM1,
  &K178
};

static _KLpairGVKd K178 = {
  &KLpairGVKdW /* wrapper */,
  &Kequivalent_computationQVdfmc_optimizationMM2,
  &K179
};

static _KLpairGVKd K179 = {
  &KLpairGVKdW /* wrapper */,
  &Kequivalent_computationQVdfmc_optimizationMM3,
  &K180
};

static _KLpairGVKd K180 = {
  &KLpairGVKdW /* wrapper */,
  &Kequivalent_computationQVdfmc_optimizationMM4,
  &K181
};

static _KLpairGVKd K181 = {
  &KLpairGVKdW /* wrapper */,
  &Kequivalent_computationQVdfmc_optimizationMM5,
  &K182
};

static _KLpairGVKd K182 = {
  &KLpairGVKdW /* wrapper */,
  &Kequivalent_computationQVdfmc_optimizationMM6,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_23 K183 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 93,
  "equivalent-computation?"
};

static _KLsignatureAvaluesGVKi K184 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K185,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K185 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLslot_valueGVdfmc_flow_graph,
  &KLslot_valueGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K186 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K187,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K187 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLprimitive_callGVdfmc_flow_graph,
  &KLprimitive_callGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K188 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K189,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K189 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLBraw_machine_wordGVdfmc_modeling,
  &KLBraw_machine_wordGVdfmc_modeling
};

static _KLsignatureAvaluesGVKi K190 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K191,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K191 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLobject_referenceGVdfmc_flow_graph,
  &KLobject_referenceGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K192 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K193,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K193 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLbinding_referenceGVdfmc_flow_graph,
  &KLbinding_referenceGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K194 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K195,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K195 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLcomputationGVdfmc_flow_graph,
  &KLcomputationGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K196 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &KDsignature_LobjectG_typesVKi,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsignatureGVKe K197 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943049,
  &K198
};

static _KLsimple_object_vectorGVKd_2 K198 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLcomputationGVdfmc_flow_graph,
  &KLcse_stateGVdfmc_optimization
};

static _KLsignatureGVKe K199 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943053,
  &K200
};

static _KLsimple_object_vectorGVKd_3 K200 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLcomputationGVdfmc_flow_graph,
  &K201,
  &KLcse_stateGVdfmc_optimization
};

static _KLunionGVKe K201 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K69,
  &KLcomputationGVdfmc_flow_graph
};

static _KLsignatureGVKe K204 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41943045,
  &K205
};

static _KLsimple_object_vectorGVKd_1 K205 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLBlambdaGVdfmc_modeling
};

static _KLsingletonGVKd K206 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KLcse_stateGVdfmc_optimization
};

static _KLimplementation_classGVKe K207 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527958025,
  &KLcse_stateGVdfmc_optimization,
  &KLcse_stateGVdfmc_optimizationW,
  &KPfalseVKi,
  &K208,
  (D) -3,
  &KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0,
  &K210,
  &K211,
  (D) 5,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &K216,
  &KPempty_vectorVKi,
  &K208,
  &K208,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_2 K208 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &Kreusable_computationsVdfmc_optimizationHLcse_stateG,
  &Kdominating_stateVdfmc_optimizationHLcse_stateG
};

_KLkeyword_methodGVKe KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_3,
  &K212,
  &key_mep_2,
  &KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I,
  &K213
};

static _KLsimple_object_vectorGVKd_1 K210 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLobjectGVKd
};

static _KLsimple_object_vectorGVKd_6 K211 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLcse_stateGVdfmc_optimization,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K212 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K214,
  &KDsignature_LobjectG_typesVKi,
  &K58
};

static _KLsimple_object_vectorGVKd_2 K213 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJdominating_state_,
  &KPfalseVKi
};

static _KLsimple_object_vectorGVKd_1 K214 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KJdominating_state_
};

static _KLbyte_stringGVKd_11 K215 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 45,
  "<cse-state>"
};

static _KLpairGVKd K216 = {
  &KLpairGVKdW /* wrapper */,
  &KLcse_if_stateGVdfmc_optimization,
  &KPempty_listVKi
};

static _KLpairGVKd K217 = {
  &KLpairGVKdW /* wrapper */,
  &KLcse_alternative_if_stateGVdfmc_optimization,
  &K218
};

static _KLpairGVKd K218 = {
  &KLpairGVKdW /* wrapper */,
  &KLcse_consequent_if_stateGVdfmc_optimization,
  &KPempty_listVKi
};

/* Code */

D Kshare_common_subexpressionsVdfmc_optimizationMM0I (D f_) {
  D code_;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7_0;
  _KLsimple_object_vectorGVKd_1 T8 = {&KLsimple_object_vectorGVKdW, (D) 5};

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:104
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:105
  CONGRUENT_CALL_PROLOG(&KbodyVdfmc_modeling, 1);
  code_ = CONGRUENT_CALL1(f_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:106
  if (code_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:107
    T7_0 = KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I(&KLcse_stateGVdfmc_optimization, &KPempty_vectorVKi, &KPfalseVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:107
    T6 = T7_0;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:107
    T3 = CALL3(&Kcse_walk_computationsVdfmc_optimizationMM0, code_, &KPfalseVKi, T6);
    T5 = T3;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:109
    T8.vector_element_[0] = f_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:109
    T4 = Kformat_outYformat_outVioMM0I(&K12, &T8);
    T5 = T4;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:106
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:104
  MV_SET_COUNT(0);
  return(T5);
}

D KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I (D class_, D init_args_, D Uunique_dominating_state_) {
  D T4;
  D T5;
  D Uunique_dominating_stateF6;
  D T7_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:47
  T4 = primitive_object_allocate_filled(3,&KLcse_stateGVdfmc_optimizationW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  T5 = K203I();
  SLOT_VALUE_SETTER(T5, T4, 0);
  primitive_type_check(Uunique_dominating_state_, &K68);
  Uunique_dominating_stateF6 = Uunique_dominating_state_;
  SLOT_VALUE_SETTER(Uunique_dominating_stateF6, T4, 1);
  T7_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:47
  MV_SET_COUNT(1);
  return(T7_0);
}

D Kcse_walk_computationsVdfmc_optimizationMM0I (D c_, D last_, D state_) {
  D cc_;
  D T5;
  D cF6T, cF6;
  D T7;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:113
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:122
  cF6T = c_;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:122
    cF6 = cF6T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:118
    T5 = primitive_idQ(cF6,last_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:118
    if (T5 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:119
      ENGINE_NODE_CALL_PROLOG(&Kcse_walk_computationVdfmc_optimization, &K13, 2);
      ENGINE_NODE_CALL2(&K13, cF6, state_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:120
      cc_ = CALL1(&Knext_computationVdfmc_flow_graph, cF6);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:121
      if (cc_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:122
        cF6T = cc_;
        goto L0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:121
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:118
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:122
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:117
  T7 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:113
  MV_SET_COUNT(0);
  return(T7);
}

D Kcse_walk_computationVdfmc_optimizationMM0I (D c_, D state_) {
  D T3;
  D canonical_c_;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:128
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:130
  CONGRUENT_CALL_PROLOG(&Kreusable_computationQVdfmc_optimization, 1);
  T3 = CONGRUENT_CALL1(c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:130
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:131
    canonical_c_ = Kintern_reusable_computationVdfmc_optimizationI(c_, state_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:132
    T11 = primitive_idQ(c_,canonical_c_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:132
    if (T11 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:132
      T7 = &KPfalseVKi;
      T8 = T7;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:134
      CONGRUENT_CALL_PROLOG(&KtemporaryVdfmc_flow_graph, 1);
      T5 = CONGRUENT_CALL1(canonical_c_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:134
      T6 = CALL2(&Kreplace_computation_with_temporaryXVdfmc_flow_graphMM0, c_, T5);
      T8 = T6;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:132
    T10 = T8;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:130
    T9 = &KPfalseVKi;
    T10 = T9;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:130
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:128
  MV_SET_COUNT(0);
  return(T10);
}

D Kcse_walk_computationVdfmc_optimizationMM1I (D c_, D state_) {
  D directionQ_;
  D consequent_state_;
  D alternative_state_;
  D T6;
  D T7;
  D T8;
  D T9;
  _KLsimple_object_vectorGVKd_4 T10 = {&KLsimple_object_vectorGVKdW, (D) 17};
  D T11;
  D T12;
  _KLsimple_object_vectorGVKd_4 T13 = {&KLsimple_object_vectorGVKdW, (D) 17};
  D T14;
  D T15;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:154
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:157
  T7 = SLOT_VALUE_INITD(c_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:157
  directionQ_ = Kcse_lookup_reusable_if_testVdfmc_optimizationMM0I(state_, T7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:158
  T8 = primitive_idQ(directionQ_,IKJconsequent_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:158
  if (T8 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:159
    Kconstant_fold_ifVdfmc_optimizationMM0I(c_, &KPtrueVKi);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:158
    T9 = primitive_idQ(directionQ_,IKJalternative_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:158
    if (T9 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:160
      Kconstant_fold_ifVdfmc_optimizationMM0I(c_, &KPfalseVKi);
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:158
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:158
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:164
  T10.vector_element_[0] = IKJdominating_state_;
  T10.vector_element_[1] = state_;
  T10.vector_element_[2] = IKJif_;
  T10.vector_element_[3] = c_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:164
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  consequent_state_ = CONGRUENT_CALL2(&KLcse_consequent_if_stateGVdfmc_optimization, &T10);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:166
  T11 = SLOT_VALUE_INITD(c_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:166
  T12 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:165
  CALL3(&Kcse_walk_computationsVdfmc_optimizationMM0, T11, T12, consequent_state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:168
  T13.vector_element_[0] = IKJdominating_state_;
  T13.vector_element_[1] = state_;
  T13.vector_element_[2] = IKJif_;
  T13.vector_element_[3] = c_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:168
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  alternative_state_ = CONGRUENT_CALL2(&KLcse_alternative_if_stateGVdfmc_optimization, &T13);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:170
  T14 = SLOT_VALUE_INITD(c_, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:170
  T15 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:169
  T6 = CALL3(&Kcse_walk_computationsVdfmc_optimizationMM0, T14, T15, alternative_state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:154
  MV_SET_COUNT(0);
  return(T6);
}

D Kcse_walk_computationVdfmc_optimizationMM2I (D c_, D state_) {
  D T3;
  D body_state_;
  D T5_0;
  _KLsimple_object_vectorGVKd_2 T6 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T7;
  D T8;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:173
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:176
  T6.vector_element_[0] = IKJdominating_state_;
  T6.vector_element_[1] = state_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:176
  T5_0 = KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I(&KLcse_stateGVdfmc_optimization, &T6, state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:176
  body_state_ = T5_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:178
  T7 = SLOT_VALUE_INITD(c_, 9);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:178
  T8 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:177
  T3 = CALL3(&Kcse_walk_computationsVdfmc_optimizationMM0, T7, T8, body_state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:173
  MV_SET_COUNT(0);
  return(T3);
}

D Kcse_walk_computationVdfmc_optimizationMM3I (D c_, D state_) {
  D T3;
  D T4;
  D exit_state_;
  D T6_0;
  _KLsimple_object_vectorGVKd_2 T7 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T8;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:181
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:184
  T7.vector_element_[0] = IKJdominating_state_;
  T7.vector_element_[1] = state_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:184
  T6_0 = KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I(&KLcse_stateGVdfmc_optimization, &T7, state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:184
  exit_state_ = T6_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:185
  CONGRUENT_CALL_PROLOG(&KbodyVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:185
  T8 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:185
  T4 = CALL3(&Kcse_walk_computationsVdfmc_optimizationMM0, T3, T8, exit_state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:181
  MV_SET_COUNT(0);
  return(T4);
}

D Kcse_walk_computationVdfmc_optimizationMM4I (D c_, D state_) {
  D T3;
  D T4;
  D body_state_;
  D T6_0;
  _KLsimple_object_vectorGVKd_2 T7 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T8;
  D cleanups_state_;
  D T10_0;
  _KLsimple_object_vectorGVKd_2 T11 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T12;
  D T13;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:188
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:191
  T7.vector_element_[0] = IKJdominating_state_;
  T7.vector_element_[1] = state_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:191
  T6_0 = KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I(&KLcse_stateGVdfmc_optimization, &T7, state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:191
  body_state_ = T6_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:192
  CONGRUENT_CALL_PROLOG(&KbodyVdfmc_modeling, 1);
  T3 = CONGRUENT_CALL1(c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:192
  T8 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:192
  CALL3(&Kcse_walk_computationsVdfmc_optimizationMM0, T3, T8, body_state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:194
  T11.vector_element_[0] = IKJdominating_state_;
  T11.vector_element_[1] = state_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:194
  T10_0 = KLcse_stateGZ32ZconstructorVdfmc_optimizationMM0I(&KLcse_stateGVdfmc_optimization, &T11, state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:194
  cleanups_state_ = T10_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:195
  T12 = SLOT_VALUE_INITD(c_, 10);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:195
  T13 = SLOT_VALUE_INITD(c_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:195
  T4 = CALL3(&Kcse_walk_computationsVdfmc_optimizationMM0, T12, T13, cleanups_state_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:188
  MV_SET_COUNT(0);
  return(T4);
}

D Kcse_lookup_reusable_if_testVdfmc_optimizationMM0I (D state_, D tst_) {
  D T3;
  D returnPexit_4_;
  D T5;
  D search_state_T, search_state_;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11_0;
  D T12_0;
  D T13_0;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  _KLsimple_object_vectorGVKd_1 T19 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T20;
  D T21_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:139
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:142
  CONGRUENT_CALL_PROLOG(&Kreusable_computationQVdfmc_optimization, 1);
  T3 = CONGRUENT_CALL1(tst_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:142
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:143
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
    search_state_T = state_;
  L0: ;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
      search_state_ = search_state_T;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
      if (search_state_ != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
        T15 = primitive_instanceQ(state_,&KLcse_if_stateGVdfmc_optimization);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
        if (T15 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:157
          T14 = state_;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
          T16 = SLOT_VALUE_INITD(T14, 2);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
          T17 = SLOT_VALUE_INITD(T16, 7);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
          T18 = primitive_idQ(tst_,T17);
          T7 = T18;
        } else {
          T7 = &KPfalseVKi;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
        if (T7 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:147
          CONGRUENT_CALL_PROLOG(&Kcse_if_state_directionVdfmc_optimization, 1);
          T8 = CONGRUENT_CALL1(state_);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:147
          T19.vector_element_[0] = T8;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:143
          T20 = MV_SET_REST_AT(&T19, 0);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:143
          T11_0 = T20;
          goto L1;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:146
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
        T9 = CALL1(&Kdominating_stateVdfmc_optimization, search_state_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
        search_state_T = T9;
        goto L0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
      T10 = &KPfalseVKi;
      MV_SET_ELT(0, &KPfalseVKi);
      MV_SET_COUNT(1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:144
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:143
    T11_0 = T10;
    L1: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:143
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:143
    T21_0 = T11_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T11_0);
      primitive_type_check(T21_0, &K107);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T13_0 = T21_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:142
    T12_0 = &KPfalseVKi;
    T13_0 = T12_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:142
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:139
  MV_SET_COUNT(1);
  return(T13_0);
}

D KLcse_alternative_if_stateGZ32ZconstructorVdfmc_optimizationMM0I (D class_, D init_args_, D Uunique_dominating_state_, D Uunique_cse_if_) {
  D T5;
  D Uunique_cse_ifF6;
  D T7;
  D T8;
  D Uunique_dominating_stateF9;
  D Uunique_cse_ifF10;
  D T11_0;
  D T12;
  _KLsimple_object_vectorGVKd_1 T13 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T14;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:72
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:72
  T12 = primitive_idQ(Uunique_cse_if_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:72
  if (T12 != &KPfalseVKi) {
    T13.vector_element_[0] = IKJif_;
    T14 = KerrorVKdMM1I(&K66, &T13);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:72
    T5 = T14;
    Uunique_cse_ifF6 = T5;
  } else {
    Uunique_cse_ifF6 = Uunique_cse_if_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:72
  T7 = primitive_object_allocate_filled(4,&KLcse_alternative_if_stateGVdfmc_optimizationW,3,&KPunboundVKi,0,0,&KPunboundVKi);
  T8 = K76I();
  SLOT_VALUE_SETTER(T8, T7, 0);
  primitive_type_check(Uunique_dominating_state_, &K68);
  Uunique_dominating_stateF9 = Uunique_dominating_state_;
  SLOT_VALUE_SETTER(Uunique_dominating_stateF9, T7, 1);
  primitive_type_check(Uunique_cse_ifF6, &KLifGVdfmc_flow_graph);
  Uunique_cse_ifF10 = Uunique_cse_ifF6;
  SLOT_VALUE_SETTER(Uunique_cse_ifF10, T7, 2);
  T11_0 = T7;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:72
  MV_SET_COUNT(1);
  return(T11_0);
}

D KLcse_if_stateGZ32ZconstructorVdfmc_optimizationMM0I (D class_, D init_args_, D Uunique_dominating_state_, D Uunique_cse_if_) {
  D T5;
  D Uunique_cse_ifF6;
  D T7;
  D T8;
  D Uunique_dominating_stateF9;
  D Uunique_cse_ifF10;
  D T11_0;
  D T12;
  _KLsimple_object_vectorGVKd_1 T13 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T14;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:57
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:57
  T12 = primitive_idQ(Uunique_cse_if_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:57
  if (T12 != &KPfalseVKi) {
    T13.vector_element_[0] = IKJif_;
    T14 = KerrorVKdMM1I(&K66, &T13);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:57
    T5 = T14;
    Uunique_cse_ifF6 = T5;
  } else {
    Uunique_cse_ifF6 = Uunique_cse_if_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:57
  T7 = primitive_object_allocate_filled(4,&KLcse_if_stateGVdfmc_optimizationW,3,&KPunboundVKi,0,0,&KPunboundVKi);
  T8 = K70I();
  SLOT_VALUE_SETTER(T8, T7, 0);
  primitive_type_check(Uunique_dominating_state_, &K68);
  Uunique_dominating_stateF9 = Uunique_dominating_state_;
  SLOT_VALUE_SETTER(Uunique_dominating_stateF9, T7, 1);
  primitive_type_check(Uunique_cse_ifF6, &KLifGVdfmc_flow_graph);
  Uunique_cse_ifF10 = Uunique_cse_ifF6;
  SLOT_VALUE_SETTER(Uunique_cse_ifF10, T7, 2);
  T11_0 = T7;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:57
  MV_SET_COUNT(1);
  return(T11_0);
}

static D K70I () {
  D T0_0;
  D T1_0;
  D T2;

  T1_0 = KLstretchy_object_vectorGZ32ZconstructorVKiMM0I(&KLstretchy_object_vectorGVKe, &KPempty_vectorVKi);
  T2 = T1_0;
  T0_0 = T2;
  MV_SET_COUNT(1);
  return(T0_0);
}

static D K76I () {
  D T0_0;
  D T1_0;
  D T2;

  T1_0 = KLstretchy_object_vectorGZ32ZconstructorVKiMM0I(&KLstretchy_object_vectorGVKe, &KPempty_vectorVKi);
  T2 = T1_0;
  T0_0 = T2;
  MV_SET_COUNT(1);
  return(T0_0);
}

static D K90I () {
  D T0_0;
  D T1_0;
  D T2;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:49
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:49
  T1_0 = KLstretchy_object_vectorGZ32ZconstructorVKiMM0I(&KLstretchy_object_vectorGVKe, &KPempty_vectorVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:49
  T2 = T1_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:49
  T0_0 = T2;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:49
  MV_SET_COUNT(1);
  return(T0_0);
}

D KLcse_consequent_if_stateGZ32ZconstructorVdfmc_optimizationMM0I (D class_, D init_args_, D Uunique_dominating_state_, D Uunique_cse_if_) {
  D T5;
  D Uunique_cse_ifF6;
  D T7;
  D T8;
  D Uunique_dominating_stateF9;
  D Uunique_cse_ifF10;
  D T11_0;
  D T12;
  _KLsimple_object_vectorGVKd_1 T13 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T14;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:62
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:62
  T12 = primitive_idQ(Uunique_cse_if_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:62
  if (T12 != &KPfalseVKi) {
    T13.vector_element_[0] = IKJif_;
    T14 = KerrorVKdMM1I(&K66, &T13);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:62
    T5 = T14;
    Uunique_cse_ifF6 = T5;
  } else {
    Uunique_cse_ifF6 = Uunique_cse_if_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:62
  T7 = primitive_object_allocate_filled(4,&KLcse_consequent_if_stateGVdfmc_optimizationW,3,&KPunboundVKi,0,0,&KPunboundVKi);
  T8 = K98I();
  SLOT_VALUE_SETTER(T8, T7, 0);
  primitive_type_check(Uunique_dominating_state_, &K68);
  Uunique_dominating_stateF9 = Uunique_dominating_state_;
  SLOT_VALUE_SETTER(Uunique_dominating_stateF9, T7, 1);
  primitive_type_check(Uunique_cse_ifF6, &KLifGVdfmc_flow_graph);
  Uunique_cse_ifF10 = Uunique_cse_ifF6;
  SLOT_VALUE_SETTER(Uunique_cse_ifF10, T7, 2);
  T11_0 = T7;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:62
  MV_SET_COUNT(1);
  return(T11_0);
}

static D K98I () {
  D T0_0;
  D T1_0;
  D T2;

  T1_0 = KLstretchy_object_vectorGZ32ZconstructorVKiMM0I(&KLstretchy_object_vectorGVKe, &KPempty_vectorVKi);
  T2 = T1_0;
  T0_0 = T2;
  MV_SET_COUNT(1);
  return(T0_0);
}

D Kcse_if_state_directionVdfmc_optimizationMM0I (D state_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:67
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:69
  T2_0 = IKJconsequent_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:67
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kcse_if_state_directionVdfmc_optimizationMM1I (D state_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:77
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:79
  T2_0 = IKJalternative_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:77
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kreusable_computationQVdfmc_optimizationMM0I (D c_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:204
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:206
  T2_0 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:204
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kreusable_computationQVdfmc_optimizationMM1I (D c_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:209
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:211
  T2_0 = &KPtrueVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:209
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kreusable_computationQVdfmc_optimizationMM2I (D c_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:226
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:228
  T2_0 = &KPtrueVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:226
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kreusable_computationQVdfmc_optimizationMM3I (D c_) {
  D T2_0;
  D T3_0;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:231
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:233
  T4 = SLOT_VALUE_INITD(c_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:233
  CONGRUENT_CALL_PROLOG(&Kreusable_computationQVdfmc_optimization, 1);
  T2_0 = CONGRUENT_CALL1(T4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:231
  T3_0 = T2_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T2_0);
    primitive_type_check(T3_0, &KLbooleanGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:231
  MV_SET_COUNT(1);
  return(T3_0);
}

D Kreusable_computationQVdfmc_optimizationMM4I (D c_) {
  D T2;
  D T3_0;
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:238
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:240
  CONGRUENT_CALL_PROLOG(&Kreferenced_bindingVdfmc_flow_graph, 1);
  T2 = CONGRUENT_CALL1(c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:240
  CONGRUENT_CALL_PROLOG(&KconstantQVdfmc_namespace, 1);
  T3_0 = CONGRUENT_CALL1(T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:238
  T4_0 = T3_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T3_0);
    primitive_type_check(T4_0, &KLbooleanGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:238
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kreusable_computationQVdfmc_optimizationMM5I (D c_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:251
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:253
  T2_0 = &KPtrueVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:251
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kreusable_computationQVdfmc_optimizationMM6I (D c_) {
  D T2;
  D T3;
  D T4_0;
  D T5_0;
  D T6;
  D T7;
  D T8;
  D T9_0;
  DWORD T10T, T10;
  D result_T, result_;
  D T12;
  D T13;
  D T14;
  DWORD T15;
  D T16;
  D T17;
  DWORD T18;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:270
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:274
  T6 = SLOT_VALUE_INITD(c_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:274
  if (T6 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:275
    T7 = SLOT_VALUE_INITD(c_, 8);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:275
    T2 = CALL1(&Kprimitive_statelessQVdfmc_modelingMM0, T7);
    T3 = T2;
  } else {
    T3 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:274
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:274
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
    T8 = SLOT_VALUE_INITD(c_, 7);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
    T14 = SLOT_VALUE_INITD(T8, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
    T15 = primitive_cast_integer_as_raw(T14);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
    T10T = 1;
    result_T = &KPtrueVKi;
  L0: ;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
      T10 = T10T;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
      result_ = result_T;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
      T16 = primitive_machine_word_equalQ(T10,T15);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
      if (T16 == &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
        T17 = REPEATED_D_SLOT_VALUE_TAGGED(T8, 1, T10);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
        if (result_ != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
          T18 = primitive_machine_word_add_signal_overflow(T10,4);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
          CONGRUENT_CALL_PROLOG(&Kreusable_computationQVdfmc_optimization, 1);
          T12 = CONGRUENT_CALL1(T17);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
          T10T = T18;
          result_T = T12;
          goto L0;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
      T13 = primitive_as_boolean(result_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:276
    T9_0 = T13;
    T5_0 = T9_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:274
    T4_0 = &KPfalseVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:274
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:270
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kreusable_computationQVdfmc_optimizationMM7I (D c_) {
  D T2;
  D T3;
  D T4;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:288
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:290
  T2 = SLOT_VALUE_INITD(c_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:290
  T3 = SLOT_VALUE_INITD(T2, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:290
  T4 = primitive_not(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:290
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:288
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kintern_reusable_computationVdfmc_optimizationI (D c_, D state_) {
  D returnPexit_3_;
  D T3;
  D search_state_T, search_state_;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12T, T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19_0;
  D T20_0;
  _KLsimple_object_vectorGVKd_1 T21 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T22;
  D T23;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:85
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:88
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:89
  search_state_T = state_;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:89
    search_state_ = search_state_T;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:89
    if (search_state_ != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T5 = CALL1(&Kreusable_computationsVdfmc_optimization, search_state_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T6 = CALL1(&Kforward_iteration_protocolVKd, T5);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T7 = T6;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T8 = MV_GET_ELT(1);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T9 = MV_GET_ELT(2);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T10 = MV_GET_ELT(3);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T11 = MV_GET_ELT(5);
;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      T12T = T7;
    L1: ;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
        T12 = T12T;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
        T13 = CALL3(T10, T5, T12, T8);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
        if (T13 == &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
          T14 = CALL2(T11, T5, T12);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:92
          CONGRUENT_CALL_PROLOG(&Kequivalent_computationQVdfmc_optimization, 2);
          T15 = CONGRUENT_CALL2(c_, T14);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:92
          if (T15 != &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:93
            T21.vector_element_[0] = T14;
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:88
            T22 = MV_SET_REST_AT(&T21, 0);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:88
            T19_0 = T22;
            goto L2;
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:92
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
          T16 = CALL2(T9, T5, T12);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
          T12T = T16;
          goto L1;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:91
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:89
      T17 = CALL1(&Kdominating_stateVdfmc_optimization, search_state_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:89
      search_state_T = T17;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:89
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:89
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:97
  T23 = SLOT_VALUE_INITD(state_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:97
  KaddXVKdMM3I(T23, c_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:98
  T18 = c_;
  MV_SET_ELT(0, c_);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:88
  T19_0 = T18;
  L2: ;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:88
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:85
  T20_0 = T19_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T19_0);
    primitive_type_check(T20_0, &KLcomputationGVdfmc_flow_graph);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:85
  MV_SET_COUNT(1);
  return(T20_0);
}

D Kequivalent_computationQVdfmc_optimizationMM0I (D c1_, D c2_) {
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:214
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:217
  T3_0 = KEEVKdI(c1_, c2_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:214
  MV_SET_COUNT(1);
  return(T3_0);
}

D Kequivalent_computationQVdfmc_optimizationMM1I (D c1_, D c2_) {
  D T3;
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:220
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:223
  T3 = primitive_idQ(c1_,c2_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:223
  T4_0 = T3;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:220
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kequivalent_computationQVdfmc_optimizationMM2I (D ref1_, D ref2_) {
  D T3;
  D T4;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:243
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:246
  CONGRUENT_CALL_PROLOG(&Kreferenced_bindingVdfmc_flow_graph, 1);
  T3 = CONGRUENT_CALL1(ref1_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:246
  CONGRUENT_CALL_PROLOG(&Kreferenced_bindingVdfmc_flow_graph, 1);
  T4 = CONGRUENT_CALL1(ref2_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:246
  T5_0 = KEEVKdI(T3, T4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:243
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kequivalent_computationQVdfmc_optimizationMM3I (D ref1_, D ref2_) {
  D T3_0;
  D T4_0;
  D T5;
  D T6;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:256
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:259
  T5 = SLOT_VALUE_INITD(ref1_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:259
  T6 = SLOT_VALUE_INITD(ref2_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:259
  CONGRUENT_CALL_PROLOG(&Kequivalent_computationQVdfmc_optimization, 2);
  T3_0 = CONGRUENT_CALL2(T5, T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:256
  T4_0 = T3_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T3_0);
    primitive_type_check(T4_0, &KLbooleanGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:256
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kequivalent_computationQVdfmc_optimizationMM4I (D c1_, D c2_) {
  D T3_0;
  D T4;
  D T5;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:262
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:265
  T4 = SLOT_VALUE_INITD(c1_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:265
  T5 = SLOT_VALUE_INITD(c2_, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:265
  T3_0 = KEEVKdI(T4, T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:262
  MV_SET_COUNT(1);
  return(T3_0);
}

D Kequivalent_computationQVdfmc_optimizationMM5I (D c1_, D c2_) {
  D T3_0;
  D T4_0;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  _KLsimple_object_vectorGVKd_1 T10 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T11_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:279
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:282
  T5 = SLOT_VALUE_INITD(c1_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:282
  T6 = SLOT_VALUE_INITD(c2_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:282
  T7 = primitive_idQ(T5,T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:282
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:283
    T8 = SLOT_VALUE_INITD(c1_, 7);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:283
    T9 = SLOT_VALUE_INITD(c2_, 7);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:283
    T10.vector_element_[0] = T9;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:283
    T11_0 = KeveryQVKdMM0I(&Kequivalent_computationQVdfmc_optimization, T8, &T10);
    T4_0 = T11_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:282
    T3_0 = &KPfalseVKi;
    T4_0 = T3_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:282
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:279
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kequivalent_computationQVdfmc_optimizationMM6I (D c1_, D c2_) {
  D T3_0;
  D T4_0;
  D T5_0;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:293
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:296
  T6 = SLOT_VALUE_INITD(c1_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:296
  T7 = SLOT_VALUE_INITD(c2_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:296
  T8 = primitive_idQ(T6,T7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:296
  if (T8 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:298
    T9 = SLOT_VALUE_INITD(c1_, 8);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:298
    T10 = SLOT_VALUE_INITD(c2_, 8);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:297
    CONGRUENT_CALL_PROLOG(&Kequivalent_computationQVdfmc_optimization, 2);
    T3_0 = CONGRUENT_CALL2(T9, T10);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:297
    T11_0 = T3_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T3_0);
      primitive_type_check(T11_0, &KLbooleanGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T5_0 = T11_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:296
    T4_0 = &KPfalseVKi;
    T5_0 = T4_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:296
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:293
  MV_SET_COUNT(1);
  return(T5_0);
}

static D K203I () {
  D T0_0;
  D T1_0;
  D T2;

  T1_0 = KLstretchy_object_vectorGZ32ZconstructorVKiMM0I(&KLstretchy_object_vectorGVKe, &KPempty_vectorVKi);
  T2 = T1_0;
  T0_0 = T2;
  MV_SET_COUNT(1);
  return(T0_0);
}


/* SYSTEM INIT CODE */

void _Init_dfmc_optimization__X_cse_for_system () {
  extern D KPresolve_symbolVKiI(D);
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJdominating_state_);
    if (T0 != &KJdominating_state_) {
      primitive_repeated_slot_value_setter(T0, &K214, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K213, 1, 0);
      primitive_slot_value_setter(T0, &Kdominating_stateVdfmc_optimizationHLcse_stateG, 3);
      primitive_repeated_slot_value_setter(T0, &K73, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K72, 1, 0);
      IKJdominating_state_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJconsequent_);
    if (T0 != &KJconsequent_) {
      IKJconsequent_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJalternative_);
    if (T0 != &KJalternative_) {
      IKJalternative_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJif_);
    if (T0 != &KJif_) {
      IKJif_ = T0;
      primitive_repeated_slot_value_setter(T0, &K73, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K72, 1, 2);
      primitive_slot_value_setter(T0, &Kcse_ifVdfmc_optimizationHLcse_if_stateG, 3);
    }
  }
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:47
  T0 = KPadd_classVKeI(&KLcse_stateGVdfmc_optimization);
  goto I0;
}
I0:

  return;
}

/* USER INIT CODE */

void _Init_dfmc_optimization__X_cse_for_user () {
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:54
  T0 = KPadd_nonsiblinged_domainVKnI(&KmakeVKd, &KmakeVKdRD_dfmc_optimizationRD_0);
  goto I4;
}
I4:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/optimization/cse.dylan:55
  T0 = KPadd_nonsiblinged_domainVKnI(&KinitializeVKd, &KinitializeVKdRD_dfmc_optimizationRD_0);
  goto I6;
}
I6:

  return;
}


/* eof */
