#include "opendylan/run-time.h"

/* Generated by Open Dylan 2014.1 for x86_64-linux */

/* Typedefs for referenced classes */

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

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

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

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

typedef struct {
  dylan_value wrapper;
} _KLbooleanGVKd;

typedef struct {
  dylan_value wrapper;
} _KLobjectGVKd;

typedef struct {
  dylan_value wrapper;
} _KLunboundGVKe;

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

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(23);
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(52);
define__KLbyte_stringGVKd(62);
define__KLbyte_stringGVKd(58);
define__KLbyte_stringGVKd(35);
define__KLbyte_stringGVKd(39);
define__KLbyte_stringGVKd(28);
define__KLbyte_stringGVKd(29);
define__KLbyte_stringGVKd(15);
define__KLbyte_stringGVKd(4);
define__KLbyte_stringGVKd(6);
define__KLbyte_stringGVKd(10);
define__KLbyte_stringGVKd(7);
define__KLbyte_stringGVKd(18);
define__KLbyte_stringGVKd(8);
define__KLbyte_stringGVKd(12);
define__KLbyte_stringGVKd(27);

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

typedef struct {
  dylan_value wrapper;
  dylan_value item_properties_;
  dylan_value computation_source_location_;
  dylan_value previous_computation_;
  dylan_value Pnext_computation_;
  dylan_value temporary_;
  dylan_value Penvironment_;
  dylan_value Pcomputation_type_;
  dylan_value Pnode_id_;
} _KLcomputationGVdfmc_flow_graph;

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

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

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

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    dylan_value vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(8);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(0);
define__KLsimple_object_vectorGVKd(16);

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value item_properties_;
  dylan_value computation_source_location_;
  dylan_value previous_computation_;
  dylan_value Pnext_computation_;
  dylan_value temporary_;
  dylan_value Penvironment_;
  dylan_value Pcomputation_type_;
  dylan_value Pnode_id_;
  dylan_value entry_state_;
  dylan_value Pbody_;
  dylan_value Pprotected_end_;
  dylan_value Pcleanups_;
  dylan_value Pcleanups_end_;
} _KLunwind_protectGVdfmc_flow_graph;

typedef struct {
  dylan_value wrapper;
  dylan_value item_properties_;
  dylan_value computation_source_location_;
  dylan_value previous_computation_;
  dylan_value Pnext_computation_;
  dylan_value temporary_;
  dylan_value Penvironment_;
  dylan_value Pcomputation_type_;
  dylan_value Pnode_id_;
  dylan_value arguments_;
  dylan_value primitive_;
} _KLprimitive_callGVdfmc_flow_graph;

typedef struct {
  dylan_value wrapper;
  dylan_value item_properties_;
  dylan_value computation_source_location_;
  dylan_value previous_computation_;
  dylan_value Pnext_computation_;
  dylan_value temporary_;
  dylan_value Penvironment_;
  dylan_value Pcomputation_type_;
  dylan_value Pnode_id_;
  dylan_value arguments_;
  dylan_value Pfunction_;
} _KLfunction_callGVdfmc_flow_graph;

typedef struct {
  dylan_value wrapper;
  dylan_value item_properties_;
  dylan_value computation_source_location_;
  dylan_value previous_computation_;
  dylan_value Pnext_computation_;
  dylan_value temporary_;
  dylan_value Penvironment_;
  dylan_value Pcomputation_type_;
  dylan_value Pnode_id_;
  dylan_value bind_return_;
} _KLbindGVdfmc_flow_graph;

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

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

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

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value fragment_record_;
  dylan_value fragment_source_position_;
  dylan_value fragment_name_;
} _KLvariable_name_fragmentGVdfmc_reader;

typedef struct {
  dylan_value wrapper;
  dylan_value head_;
  dylan_value tail_;
} _KLlistGVKd;

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

typedef struct {
  dylan_value wrapper;
  dylan_value condition_format_string_;
  dylan_value condition_format_arguments_;
} _KLsimple_restartGVKd;

typedef struct {
  dylan_value wrapper;
  dylan_value handler_type_;
  dylan_value handler_function_;
  dylan_value handler_test_;
  dylan_value handler_init_arguments_;
} _KLhandlerGVKi;

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


/* Typedefs for defined classes */


/* Referenced object declarations */

dylan_value KPadd_a_methodVKnI (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe Kre_optimize_type_estimateVdfmc_flow_graph;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLlibraryGVKe Kdfmc_optimization_libraryYdylan_userVdfmc_optimization;
extern _KLclassGVKd KLlibraryGVKe;
extern _KLmm_wrapperGVKi_0 KLlibraryGVKeW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLsealed_generic_functionGVKe Kqueue_headVdfmc_flow_graph;
extern _KLsimple_methodGVKe Ktrace_dfm_nodesVdfmc_flow_graph;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLsimple_methodGVKe Kitem_statusVdfmc_flow_graphMM0;
extern _KLsealed_generic_functionGVKe Kqueue_popVdfmc_flow_graph;
extern _KLsimple_methodGVKe Ktrace_dfm_phaseVdfmc_flow_graph;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLclassGVKd KLcomputationGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLcomputationGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe Kcomputation_source_locationVdfmc_flow_graph;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
dylan_value Kprotected_endVdfmc_flow_graphMM0I (dylan_value);
extern _KLsealed_generic_functionGVKe Kreturn_tempVdfmc_flow_graph;
extern _KLsimple_methodGVKe KusedQVdfmc_commonMM0;
extern _KLsealed_generic_functionGVKe KusersVdfmc_common;
extern _KLincremental_generic_functionGVKe KsizeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLsealed_generic_functionGVKe KheadVKd;
dylan_value Kdebug_assertion_failureVKiI (dylan_value, dylan_value);
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLsealed_generic_functionGVKe Kremove_userXVdfmc_common;
extern _KLclassGVKd KLunwind_protectGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLunwind_protectGVdfmc_flow_graphW;
dylan_value Ktrace_dfm_nodeVdfmc_flow_graphMM0I (dylan_value, dylan_value, dylan_value);
dylan_value Kanalyze_callsVdfmc_optimizationMM1I (dylan_value);
extern _KLclassGVKd KLprimitive_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLprimitive_callGVdfmc_flow_graphW;
dylan_value Kanalyze_callsVdfmc_optimizationMM2I (dylan_value);
dylan_value Ktry_inliningVdfmc_optimizationMM1I (dylan_value);
extern _KLclassGVKd KLfunction_callGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLfunction_callGVdfmc_flow_graphW;
extern _KLclassGVKd KLbindGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLbindGVdfmc_flow_graphW;
extern _KLsealed_generic_functionGVKe Kdelete_useless_computationsVdfmc_optimization;
extern _KLsealed_generic_functionGVKe Kconstant_foldVdfmc_optimization;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
dylan_value Kunion_instanceQVKiI (dylan_value, dylan_value);
extern _KLclassGVKd KLBlambdaGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBlambdaGVdfmc_modelingW;
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
dylan_value Ksingleton_pointer_idQ_instanceQVKiI (dylan_value, dylan_value);
extern _KLsimple_methodGVKe Koptimization_queueVdfmc_modelingMM0;
extern _KLclassGVKd KLstretchy_object_vectorGVKe;
extern _KLmm_wrapperGVKi_0 KLstretchy_object_vectorGVKeW;
extern _KLsimple_methodGVKe Kinit_optimization_queueVdfmc_flow_graphMM0;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLsealed_generic_functionGVKe Kcurrent_library_descriptionVdfmc_common;
extern _KLsimple_methodGVKe Klanguage_definitionVdfmc_namespaceMM0;
extern _KLincremental_generic_functionGVKe Kdebug_nameVKe;
dylan_value Kmodel_compilation_recordVdfmc_commonI (dylan_value);
extern _KLsealed_generic_functionGVKe Kcompilation_record_source_recordVdfmc_common;
extern _KLincremental_generic_functionGVKe Ksource_record_locationVsource_records;
extern _KLincremental_generic_functionGVKe Klocator_baseYlocatorsVsystem;
extern _KLincremental_generic_functionGVKe KasVKd;
extern _KLclassGVKd KLvariable_name_fragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLvariable_name_fragmentGVdfmc_readerW;
extern _KLsealed_generic_functionGVKe KbodyVdfmc_modeling;
extern _KLsealed_generic_functionGVKe KenvironmentVdfmc_modeling;
extern _KLsimple_methodGVKe KinnersVdfmc_flow_graphMM0;
extern _KLsealed_generic_functionGVKe KlambdaVdfmc_flow_graph;
extern _KLsimple_methodGVKe Kdo_all_lambdasVdfmc_flow_graphMM0;
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
extern _KLsimple_methodGVKe Koptimization_queue_setterVdfmc_modelingMM0;
extern _KLsimple_methodGVKe Kstrip_environmentVdfmc_flow_graphMM0;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLsimple_methodGVKe Klambda_optimizedQ_setterVdfmc_modelingMM0;
extern _KLsymbolGVKd KJformat_string_;
extern _KLsymbolGVKd KJtype_;
extern _KLclassGVKd KLsimple_restartGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_restartGVKdW;
extern _KLsymbolGVKd KJfunction_;
extern _KLsymbolGVKd KJtest_;
extern _KLsymbolGVKd KJinit_arguments_;
dylan_value KLhandlerGZ32ZconstructorVKiMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLclassGVKd KLhandlerGVKi;
extern _KLmm_wrapperGVKi_0 KLhandlerGVKiW;
extern _KLsealed_generic_functionGVKe Kmodel_creatorVdfmc_common;
dylan_value Kdo_with_dependent_contextVdfmc_namespaceI (dylan_value, dylan_value, dylan_value);
extern _KLincremental_generic_functionGVKe KLVKd;
extern _KLincremental_generic_functionGVKe KAVKd;
dylan_value Klambda_usedQVdfmc_flow_graphMM0I (dylan_value);
extern _KLsealed_generic_functionGVKe Klambda_top_levelQVdfmc_modeling;
extern _KLsealed_generic_functionGVKe Kconstant_fold_closureVdfmc_optimization;
extern _KLsimple_methodGVKe Kprune_closureVdfmc_optimizationMM0;
extern _KLsimple_methodGVKe Kanalyze_dynamic_extent_forVdfmc_optimization;
extern _KLsimple_methodGVKe Kanalyze_environmentsVdfmc_flow_graphMM0;
extern _KLsimple_methodGVKe Kcheck_optimized_computationsVdfmc_optimizationMM0;
extern _KLsimple_methodGVKe Kshare_common_subexpressionsVdfmc_optimizationMM0;
extern _KLsimple_methodGVKe Kdelete_useless_environmentsVdfmc_optimizationMM0;
extern _KLsimple_methodGVKe Kmaybe_rename_temporaries_in_conditionalsVdfmc_optimizationMM0;
extern _KLsimple_methodGVKe Kmaybe_delete_function_bodyVdfmc_flow_graph;
extern _KLsimple_methodGVKe Keliminate_assignmentsVdfmc_optimizationMM0;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLsealed_generic_functionGVKe KtemporaryVdfmc_flow_graph;
dylan_value Ktype_estimate_retractVdfmc_typistMM0I (dylan_value);
extern dylan_value Tparent_source_locationTVdfmc_reader;
extern dylan_value TdebuggingQTVKi;
extern dylan_value Ttrace_dfm_callbackTVdfmc_flow_graph;
extern dylan_value Ttrace_dfm_libraryTVdfmc_flow_graph;
extern dylan_value Ttrace_dfm_fileTVdfmc_flow_graph;
extern dylan_value Ttrace_dfm_methodTVdfmc_flow_graph;
extern dylan_value Tcurrent_handlersTVKi;

/* Defined object declarations */

extern _KLsimple_methodGVKe Kre_optimize_type_estimateVdfmc_flow_graphMdfmc_optimizationM0;
dylan_value Kre_optimize_type_estimateVdfmc_flow_graphMdfmc_optimizationM0I (dylan_value);
extern _KLsealed_generic_functionGVKe Kreally_run_compilation_passesVdfmc_optimization;
dylan_value Kensure_optimization_queueVdfmc_optimizationMM0I (dylan_value);
dylan_value Krun_optimizationsVdfmc_optimizationMM0I (dylan_value);
static _KLsymbolGVKd KJhighlight_queue_;
extern _KLsimple_methodGVKe Kdo_optimizeVdfmc_optimization;
dylan_value Kdo_optimizeVdfmc_optimizationI (dylan_value);
static _KLsymbolGVKd KJdebug_string_;
static _KLbyte_stringGVKd_27 K10;
static _KLbyte_stringGVKd_12 K11;
extern _KLsealed_generic_functionGVKe KoptimizeVdfmc_optimization;
extern _KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM0;
dylan_value KoptimizeVdfmc_optimizationMM0I (dylan_value);
extern _KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM1;
dylan_value KoptimizeVdfmc_optimizationMM1I (dylan_value);
extern _KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM2;
dylan_value KoptimizeVdfmc_optimizationMM2I (dylan_value);
extern _KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM3;
dylan_value KoptimizeVdfmc_optimizationMM3I (dylan_value);
extern _KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM4;
dylan_value KoptimizeVdfmc_optimizationMM4I (dylan_value);
static _KLpairGVKd K23;
static _KLpairGVKd K24;
static _KLpairGVKd K25;
static _KLpairGVKd K26;
static _KLpairGVKd K27;
static _KLsignatureAvaluesGVKi K28;
static _KLbyte_stringGVKd_8 K29;
static _KLsimple_object_vectorGVKd_1 K30;
static _KLbyte_stringGVKd_18 K31;
static _KLsignatureAvaluesGVKi K32;
static _KLsimple_object_vectorGVKd_1 K33;
static _KLsymbolGVKd KJoptimizing_;
static _KLbyte_stringGVKd_7 K35;
static _KLbyte_stringGVKd_10 K36;
static _KLsignatureAvaluesGVKi K37;
static _KLsimple_object_vectorGVKd_1 K38;
static _KLbyte_stringGVKd_6 K39;
static _KLsignatureAvaluesGVKi K40;
static _KLsimple_object_vectorGVKd_1 K41;
static _KLsignatureAvaluesGVKi K42;
static _KLsimple_object_vectorGVKd_1 K43;
static _KLbyte_stringGVKd_6 K44;
static _KLbyte_stringGVKd_4 K45;
static _KLbyte_stringGVKd_15 K46;
static _KLunionGVKe K47;
static _KLsingletonGVKd K48;
extern _KLsimple_methodGVKe Kreally_run_compilation_passesVdfmc_optimizationMM0;
dylan_value Kreally_run_compilation_passesVdfmc_optimizationMM0I (dylan_value);
extern _KLsimple_methodGVKe Kreally_run_compilation_passesVdfmc_optimizationMM1;
dylan_value Kreally_run_compilation_passesVdfmc_optimizationMM1I (dylan_value);
static _KLpairGVKd K53;
static _KLpairGVKd K54;
static _KLbyte_stringGVKd_29 K55;
static _KLsimple_closure_methodGVKi_0 KUloopUF65;
static dylan_value KUloopUF65I (dylan_value);
static _KLunionGVKe K58;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF64;
static dylan_value Kanonymous_of_really_run_compilation_passesF64I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF63;
static dylan_value Kanonymous_of_really_run_compilation_passesF63I (dylan_value);
static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF115;
static dylan_value KUhandler_functionUF115I (dylan_value, dylan_value);
static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF112;
static dylan_value KUhandler_functionUF112I (dylan_value, dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF74;
static dylan_value Kanonymous_of_really_run_compilation_passesF74I ();
static _KLbyte_stringGVKd_28 K72;
static _KLbyte_stringGVKd_39 K73;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF110;
static dylan_value Kanonymous_of_really_run_compilation_passesF110I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF109;
static dylan_value Kanonymous_of_really_run_compilation_passesF109I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF108;
static dylan_value Kanonymous_of_really_run_compilation_passesF108I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF107;
static dylan_value Kanonymous_of_really_run_compilation_passesF107I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF106;
static dylan_value Kanonymous_of_really_run_compilation_passesF106I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF105;
static dylan_value Kanonymous_of_really_run_compilation_passesF105I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF104;
static dylan_value Kanonymous_of_really_run_compilation_passesF104I (dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF103;
static dylan_value Kanonymous_of_really_run_compilation_passesF103I (dylan_value);
static _KLsymbolGVKd KJstart_phase_for_code_;
static _KLbyte_stringGVKd_35 K92;
static _KLbyte_stringGVKd_18 K93;
static _KLbyte_stringGVKd_58 K94;
static _KLbyte_stringGVKd_62 K95;
static _KLbyte_stringGVKd_52 K96;
static _KLbyte_stringGVKd_14 K97;
static _KLbyte_stringGVKd_22 K98;
static _KLsymbolGVKd KJfinished_phase_for_code_;
static _KLbyte_stringGVKd_22 K100;
static _KLbyte_stringGVKd_23 K101;
static _KLbyte_stringGVKd_20 K102;
static _KLsignatureGVKe K111;
static _KLsignatureGVKe K113;
static _KLsimple_object_vectorGVKd_2 K114;
static _KLsignatureGVKe K116;
static _KLsimple_object_vectorGVKd_1 K117;
static _KLsignatureGVKe K118;
static _KLsimple_object_vectorGVKd_1 K119;
static _KLsignatureGVKe K120;

/* Indirection variables */

static dylan_value IKJhighlight_queue_ = &KJhighlight_queue_;
static dylan_value IKJdebug_string_ = &KJdebug_string_;
static dylan_value IKJoptimizing_ = &KJoptimizing_;
static dylan_value IKJstart_phase_for_code_ = &KJstart_phase_for_code_;
static dylan_value IKJfinished_phase_for_code_ = &KJfinished_phase_for_code_;

/* Variables */

dylan_value really_run_compilation_passesVdfmc_optimization = &Kreally_run_compilation_passesVdfmc_optimization;
dylan_value Ttrace_optimizationsTVdfmc_optimization = &KPfalseVKi;

/* Objects */

_KLsimple_methodGVKe Kre_optimize_type_estimateVdfmc_flow_graphMdfmc_optimizationM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K120,
  &Kre_optimize_type_estimateVdfmc_flow_graphMdfmc_optimizationM0I
};

_KLsealed_generic_functionGVKe Kreally_run_compilation_passesVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  (dylan_value) 1,
  &K55,
  &K53,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLsymbolGVKd KJhighlight_queue_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K46
};

_KLsimple_methodGVKe Kdo_optimizeVdfmc_optimization = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K28,
  &Kdo_optimizeVdfmc_optimizationI
};

static _KLsymbolGVKd KJdebug_string_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K11
};

static _KLbyte_stringGVKd_27 K10 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 109,
  "MAX REOPTIMIZATIONS REACHED"
};

static _KLbyte_stringGVKd_12 K11 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 49,
  "debug-string"
};

_KLsealed_generic_functionGVKe KoptimizeVdfmc_optimization = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K28,
  (dylan_value) 1,
  &K29,
  &K23,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K28,
  &KoptimizeVdfmc_optimizationMM0I
};

_KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K42,
  &KoptimizeVdfmc_optimizationMM1I
};

_KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K40,
  &KoptimizeVdfmc_optimizationMM2I
};

_KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K37,
  &KoptimizeVdfmc_optimizationMM3I
};

_KLsimple_methodGVKe KoptimizeVdfmc_optimizationMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K32,
  &KoptimizeVdfmc_optimizationMM4I
};

static _KLpairGVKd K23 = {
  &KLpairGVKdW /* wrapper */,
  &KoptimizeVdfmc_optimizationMM0,
  &K24
};

static _KLpairGVKd K24 = {
  &KLpairGVKdW /* wrapper */,
  &KoptimizeVdfmc_optimizationMM1,
  &K25
};

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

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

static _KLpairGVKd K27 = {
  &KLpairGVKdW /* wrapper */,
  &KoptimizeVdfmc_optimizationMM4,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K28 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K30,
  &KDsignature_LbooleanG_typesVKi
};

static _KLbyte_stringGVKd_8 K29 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 33,
  "optimize"
};

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

static _KLbyte_stringGVKd_18 K31 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 73,
  "no reason supplied"
};

static _KLsignatureAvaluesGVKi K32 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 37749765,
  &K33,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K33 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 5,
  &KLunwind_protectGVdfmc_flow_graph
};

static _KLsymbolGVKd KJoptimizing_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K36
};

static _KLbyte_stringGVKd_7 K35 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 29,
  "UPGRADE"
};

static _KLbyte_stringGVKd_10 K36 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 41,
  "optimizing"
};

static _KLsignatureAvaluesGVKi K37 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 37749765,
  &K38,
  &KDsignature_LbooleanG_typesVKi
};

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

static _KLbyte_stringGVKd_6 K39 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 25,
  "INLINE"
};

static _KLsignatureAvaluesGVKi K40 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 37749765,
  &K41,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K41 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 5,
  &KLfunction_callGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K42 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K43,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_1 K43 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 5,
  &KLbindGVdfmc_flow_graph
};

static _KLbyte_stringGVKd_6 K44 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 25,
  "DELETE"
};

static _KLbyte_stringGVKd_4 K45 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 17,
  "FOLD"
};

static _KLbyte_stringGVKd_15 K46 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 61,
  "highlight-queue"
};

static _KLunionGVKe K47 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K48,
  &KLBlambdaGVdfmc_modeling
};

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

_KLsimple_methodGVKe Kreally_run_compilation_passesVdfmc_optimizationMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kreally_run_compilation_passesVdfmc_optimizationMM0I
};

_KLsimple_methodGVKe Kreally_run_compilation_passesVdfmc_optimizationMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K118,
  &Kreally_run_compilation_passesVdfmc_optimizationMM1I
};

static _KLpairGVKd K53 = {
  &KLpairGVKdW /* wrapper */,
  &Kreally_run_compilation_passesVdfmc_optimizationMM0,
  &K54
};

static _KLpairGVKd K54 = {
  &KLpairGVKdW /* wrapper */,
  &Kreally_run_compilation_passesVdfmc_optimizationMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_29 K55 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 117,
  "really-run-compilation-passes"
};

static _KLsimple_closure_methodGVKi_0 KUloopUF65 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &K116,
  &KUloopUF65I,
  (dylan_value) 1
};

static _KLunionGVKe K58 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K48,
  &KLsymbolGVKd
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF64 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF64I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF63 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF63I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF115 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &K113,
  &KUhandler_functionUF115I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF112 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &K113,
  &KUhandler_functionUF112I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF74 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K111,
  &Kanonymous_of_really_run_compilation_passesF74I,
  (dylan_value) 1
};

static _KLbyte_stringGVKd_28 K72 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 113,
  "Restart all analysis passes."
};

static _KLbyte_stringGVKd_39 K73 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 157,
  "Abort all analysis passes and continue."
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF110 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF110I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF109 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF109I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF108 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF108I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF107 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF107I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF106 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF106I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF105 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF105I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF104 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF104I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_really_run_compilation_passesF103 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_really_run_compilation_passesF103I,
  (dylan_value) 1
};

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

static _KLbyte_stringGVKd_35 K92 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 141,
  "static single assignment conversion"
};

static _KLbyte_stringGVKd_18 K93 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 73,
  "rename temporaries"
};

static _KLbyte_stringGVKd_58 K94 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 233,
  "dead code removal, constant fold, call upgrading, inlining"
};

static _KLbyte_stringGVKd_62 K95 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 249,
  "common subexpression elimination, useless environment deletion"
};

static _KLbyte_stringGVKd_52 K96 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 209,
  "analyze dynamic-extent, check optimized computations"
};

static _KLbyte_stringGVKd_14 K97 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 57,
  "prune closures"
};

static _KLbyte_stringGVKd_22 K98 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 89,
  "constant fold closures"
};

static _KLsymbolGVKd KJfinished_phase_for_code_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K101
};

static _KLbyte_stringGVKd_22 K100 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 89,
  "finished optimizations"
};

static _KLbyte_stringGVKd_23 K101 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 93,
  "finished-phase-for-code"
};

static _KLbyte_stringGVKd_20 K102 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 81,
  "start-phase-for-code"
};

static _KLsignatureGVKe K111 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040193,
  &KPempty_vectorVKi
};

static _KLsignatureGVKe K113 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040201,
  &K114
};

static _KLsimple_object_vectorGVKd_2 K114 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLsimple_restartGVKd,
  &KLobjectGVKd
};

static _KLsignatureGVKe K116 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040197,
  &K117
};

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

static _KLsignatureGVKe K118 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040197,
  &K119
};

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

static _KLsignatureGVKe K120 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41943045,
  &K30
};

/* Code */

dylan_value Kre_optimize_type_estimateVdfmc_flow_graphMdfmc_optimizationM0I (dylan_value c_) {
  dylan_value tmp_;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:236
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:238
  CONGRUENT_CALL_PROLOG(&KtemporaryVdfmc_flow_graph, 1);
  tmp_ = CONGRUENT_CALL1(c_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:239
  if (tmp_ != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:240
    T5 = Ktype_estimate_retractVdfmc_typistMM0I(c_);
    T4 = T5;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:239
    T3 = &KPfalseVKi;
    T4 = T3;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:239
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:236
  MV_SET_COUNT(0);
  return(T4);
}

dylan_value Kensure_optimization_queueVdfmc_optimizationMM0I (dylan_value code_) {
  dylan_value Utmp_;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:179
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:180
  Utmp_ = CALL1(&Koptimization_queueVdfmc_modelingMM0, code_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:180
  if (Utmp_ != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/inlining.dylan:375
    T6 = Utmp_;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:180
    T3 = T6;
    MV_SET_ELT(0, T6);
    MV_SET_COUNT(1);
    T5 = T3;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:182
    CALL1(&Kinit_optimization_queueVdfmc_flow_graphMM0, code_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:183
    T4 = CALL1(&Koptimization_queueVdfmc_modelingMM0, code_);
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:180
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:179
  return(T5);
}

dylan_value Krun_optimizationsVdfmc_optimizationMM0I (dylan_value code_) {
  dylan_value queue_;
  dylan_value somethingQF3;
  DWORD count_T, count_;
  dylan_value item_T, item_;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9_0;
  dylan_value T10_0;
  dylan_value T11_0;
  dylan_value somethingQF12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  DWORD T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:187
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:189
  queue_ = Kensure_optimization_queueVdfmc_optimizationMM0I(code_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:190
  somethingQF3 = CALL1(&Kqueue_headVdfmc_flow_graph, queue_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:190
  somethingQF12 = somethingQF3;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
  T14 = somethingQF12;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
  count_T = 1;
  item_T = T14;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
    count_ = count_T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
    item_ = item_T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
    T15 = primitive_machine_word_less_thanQ(count_,40001);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
    if (T15 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
      if (item_ != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:193
        CALL2(&Ktrace_dfm_nodesVdfmc_flow_graph, queue_, IKJhighlight_queue_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:194
        T6 = CALL1(&Kdo_optimizeVdfmc_optimization, item_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:194
        if (T6 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:195
          somethingQF12 = &KPtrueVKi;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:197
          T7 = CALL1(&Kitem_statusVdfmc_flow_graphMM0, item_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:197
          T16 = primitive_idQ(T7,(dylan_value) 9);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:197
          if (T16 == &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:198
            CALL1(&Kqueue_popVdfmc_flow_graph, queue_);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:197
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:194
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
        T17 = primitive_machine_word_add_signal_overflow(count_,4);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:192
        T8 = CALL1(&Kqueue_headVdfmc_flow_graph, queue_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
        count_T = T17;
        item_T = T8;
        goto L0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:202
    T18 = primitive_machine_word_equalQ(count_,40001);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:202
    if (T18 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:203
      T19 = Ttrace_optimizationsTVdfmc_optimization;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:203
      if (T19 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:203
        T20 = Ttrace_optimizationsTVdfmc_optimization;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:203
        CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T20, IKJdebug_string_, &K10);
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:203
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:202
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:191
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:206
  T13 = somethingQF12;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:206
  if (T13 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:206
    T9_0 = &KPtrueVKi;
    T11_0 = T9_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:206
    T10_0 = &KPfalseVKi;
    T11_0 = T10_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:206
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:187
  MV_SET_COUNT(1);
  return(T11_0);
}

dylan_value Kdo_optimizeVdfmc_optimizationI (dylan_value item_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value Pold_valueP_;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:223
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
  T2 = item_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
  CONGRUENT_CALL_PROLOG(&Kcomputation_source_locationVdfmc_flow_graph, 1);
  T3 = CONGRUENT_CALL1(T2);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
  Pold_valueP_ = primitive_read_thread_variable(Tparent_source_locationTVdfmc_reader);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
  ENTER_UNWIND_FRAME(T5);
  if (!nlx_setjmp(FRAME_DEST(T5))) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
    primitive_write_thread_variable(Tparent_source_locationTVdfmc_reader, T3);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:225
    CONGRUENT_CALL_PROLOG(&KoptimizeVdfmc_optimization, 1);
    T6 = CONGRUENT_CALL1(item_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:225
    if (T6 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:225
      T7 = &KPtrueVKi;
      MV_SET_ELT(0, &KPtrueVKi);
      MV_SET_COUNT(1);
      T9 = T7;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:225
      T8 = &KPfalseVKi;
      MV_SET_ELT(0, &KPfalseVKi);
      MV_SET_COUNT(1);
      T9 = T8;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:225
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
    FALL_THROUGH_UNWIND(T9);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
  primitive_write_thread_variable(Tparent_source_locationTVdfmc_reader, Pold_valueP_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:224
  CONTINUE_UNWIND();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:223
  return(T9);
}

dylan_value KoptimizeVdfmc_optimizationMM0I (dylan_value c_) {
  dylan_value T2_0;
  dylan_value T3_0;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:245
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:246
  Ktrace_dfm_nodeVdfmc_flow_graphMM0I(IKJoptimizing_, c_, &K44);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:246
  CONGRUENT_CALL_PROLOG(&Kdelete_useless_computationsVdfmc_optimization, 1);
  T4 = CONGRUENT_CALL1(c_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:246
  if (T4 != &KPfalseVKi) {
    T5 = &KPtrueVKi;
  } else {
    T5 = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:246
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:246
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:246
    T2_0 = T5;
    T3_0 = T2_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:247
    Ktrace_dfm_nodeVdfmc_flow_graphMM0I(IKJoptimizing_, c_, &K45);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:247
    CONGRUENT_CALL_PROLOG(&Kconstant_foldVdfmc_optimization, 1);
    T6 = CONGRUENT_CALL1(c_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:247
    if (T6 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:247
      T7_0 = &KPtrueVKi;
      T9_0 = T7_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:247
      T8_0 = &KPfalseVKi;
      T9_0 = T8_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:247
    T3_0 = T9_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:246
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:245
  MV_SET_COUNT(1);
  return(T3_0);
}

dylan_value KoptimizeVdfmc_optimizationMM1I (dylan_value c_) {
  dylan_value T2_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:253
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:253
  T2_0 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:253
  MV_SET_COUNT(1);
  return(T2_0);
}

dylan_value KoptimizeVdfmc_optimizationMM2I (dylan_value c_) {
  dylan_value Utmp_;
  dylan_value T3_0;
  dylan_value T4_0;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10_0;
  dylan_value T11_0;
  dylan_value T12_0;
  dylan_value T13;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:257
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:258
  T6 = KoptimizeVdfmc_optimizationMM0I(c_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:258
  T7 = T6;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:258
  if (T7 != &KPfalseVKi) {
    Utmp_ = T7;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:259
    Ktrace_dfm_nodeVdfmc_flow_graphMM0I(IKJoptimizing_, c_, &K35);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:259
    T9 = Kanalyze_callsVdfmc_optimizationMM2I(c_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:259
    if (T9 != &KPfalseVKi) {
      T8 = &KPtrueVKi;
    } else {
      T8 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:259
    Utmp_ = T8;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:258
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:258
  if (Utmp_ != &KPfalseVKi) {
    T5 = Utmp_;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:258
    T3_0 = T5;
    T4_0 = T3_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:260
    Ktrace_dfm_nodeVdfmc_flow_graphMM0I(IKJoptimizing_, c_, &K39);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:260
    T13 = Ktry_inliningVdfmc_optimizationMM1I(c_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:260
    if (T13 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:260
      T10_0 = &KPtrueVKi;
      T12_0 = T10_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:260
      T11_0 = &KPfalseVKi;
      T12_0 = T11_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:260
    T4_0 = T12_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:258
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:257
  MV_SET_COUNT(1);
  return(T4_0);
}

dylan_value KoptimizeVdfmc_optimizationMM3I (dylan_value c_) {
  dylan_value T2_0;
  dylan_value T3_0;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6_0;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9;
  dylan_value T10_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:264
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:265
  T4 = KoptimizeVdfmc_optimizationMM0I(c_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:265
  T5 = T4;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:265
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:265
    T2_0 = T5;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:265
    T10_0 = T2_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T2_0);
      primitive_type_check(T10_0, &KLbooleanGVKd);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T3_0 = T10_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:266
    Ktrace_dfm_nodeVdfmc_flow_graphMM0I(IKJoptimizing_, c_, &K35);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:266
    T9 = Kanalyze_callsVdfmc_optimizationMM1I(c_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:266
    if (T9 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:266
      T6_0 = &KPtrueVKi;
      T8_0 = T6_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:266
      T7_0 = &KPfalseVKi;
      T8_0 = T7_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:266
    T3_0 = T8_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:265
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:264
  MV_SET_COUNT(1);
  return(T3_0);
}

dylan_value KoptimizeVdfmc_optimizationMM4I (dylan_value c_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value temp_;
  dylan_value T6;
  dylan_value T7;
  dylan_value users_;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:273
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:274
  T2 = Kprotected_endVdfmc_flow_graphMM0I(c_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:274
  if (T2 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:274
    T3 = Kprotected_endVdfmc_flow_graphMM0I(c_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:274
    T4 = CALL1(&Kreturn_tempVdfmc_flow_graph, T3);
    temp_ = T4;
  } else {
    temp_ = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:274
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:275
  if (temp_ != &KPfalseVKi) {
    T14 = temp_;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:275
    T6 = CALL1(&KusedQVdfmc_commonMM0, T14);
    T7 = T6;
  } else {
    T7 = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:275
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:275
  if (T7 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:276
    CONGRUENT_CALL_PROLOG(&KusersVdfmc_common, 1);
    users_ = CONGRUENT_CALL1(temp_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:277
    CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
    T9 = CONGRUENT_CALL1(users_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:277
    T15 = primitive_idQ(T9,(dylan_value) 5);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:277
    if (T15 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
      T16 = TdebuggingQTVKi;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
      if (T16 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
        T10 = CALL1(&KheadVKd, users_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
        T11 = Kprotected_endVdfmc_flow_graphMM0I(c_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
        T17 = primitive_idQ(T10,T11);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
        T18 = primitive_not(T17);
        T12 = T18;
      } else {
        T12 = &KPfalseVKi;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
      if (T12 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
        Kdebug_assertion_failureVKiI(&K31, &KPempty_vectorVKi);
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:278
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:280
      T13 = Kprotected_endVdfmc_flow_graphMM0I(c_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:280
      CONGRUENT_CALL_PROLOG(&Kremove_userXVdfmc_common, 2);
      CONGRUENT_CALL2(temp_, T13);
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:277
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:275
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:283
  T19 = KoptimizeVdfmc_optimizationMM0I(c_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:283
  T20_0 = T19;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:273
  MV_SET_COUNT(1);
  return(T20_0);
}

dylan_value Kreally_run_compilation_passesVdfmc_optimizationMM0I (dylan_value code_) {
  dylan_value T2_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:81
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:81
  T2_0 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:81
  MV_SET_COUNT(1);
  return(T2_0);
}

dylan_value Kreally_run_compilation_passesVdfmc_optimizationMM1I (dylan_value code_) {
  volatile dylan_value Pold_valueP_;
  volatile dylan_value T3;
  volatile dylan_value T4;
  volatile dylan_value T5;
  volatile dylan_value T6;
  volatile dylan_value T7;
  volatile dylan_value T8;
  volatile dylan_value T9;
  volatile dylan_value T10;
  volatile dylan_value T11;
  volatile dylan_value T12;
  volatile dylan_value T13;
  volatile dylan_value T14;
  volatile dylan_value T15;
  volatile dylan_value T16;
  volatile dylan_value T17;
  volatile dylan_value T18;
  volatile dylan_value T19;
  volatile dylan_value T20;
  volatile dylan_value T21;
  volatile dylan_value cr_;
  volatile dylan_value sr_;
  volatile dylan_value lc_;
  volatile dylan_value T25;
  volatile dylan_value T26;
  volatile dylan_value T27;
  volatile dylan_value T28;
  volatile dylan_value T29;
  volatile dylan_value T30;
  volatile dylan_value debug_name_;
  volatile dylan_value T32;
  volatile dylan_value T33;
  volatile dylan_value T34;
  volatile dylan_value T35_0;
  volatile dylan_value T36_0;
  volatile dylan_value T37;
  volatile dylan_value T38;
  volatile dylan_value T39;
  volatile dylan_value T40;
  volatile dylan_value T41;
  volatile dylan_value T42;
  volatile dylan_value T43;
  volatile dylan_value T44;
  volatile DWORD T45;
  volatile dylan_value T46;
  volatile dylan_value T47;
  volatile dylan_value T48;
  volatile dylan_value T49T, T49;
  volatile dylan_value T50;
  volatile dylan_value T51;
  volatile dylan_value T52;
  volatile dylan_value T53;
  volatile dylan_value T54_0;
  volatile dylan_value T55_0;
  volatile dylan_value T56;
  volatile dylan_value T57;
  volatile dylan_value T58;
  volatile dylan_value T59T, T59;
  volatile dylan_value T60;
  volatile dylan_value T61;
  volatile dylan_value T62;
  volatile dylan_value T63;
  volatile dylan_value T64_0;
  volatile dylan_value T65_0;
  volatile dylan_value T66;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:84
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
  Pold_valueP_ = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
  ENTER_UNWIND_FRAME(T3);
  if (!nlx_setjmp(FRAME_DEST(T3))) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    T12 = Ttrace_dfm_callbackTVdfmc_flow_graph;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    if (T12 != &KPfalseVKi) {
      T13 = &KPtrueVKi;
    } else {
      T13 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    if (T13 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      T14 = Ttrace_dfm_libraryTVdfmc_flow_graph;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      if (T14 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        CONGRUENT_CALL_PROLOG(&Kcurrent_library_descriptionVdfmc_common, 0);
        T15 = CONGRUENT_CALL0();
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        T16 = CALL1(&Klanguage_definitionVdfmc_namespaceMM0, T15);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        CONGRUENT_CALL_PROLOG(&Kdebug_nameVKe, 1);
        T17 = CONGRUENT_CALL1(T16);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        T18 = primitive_idQ(T14,T17);
        T19 = T18;
      } else {
        T19 = &KPtrueVKi;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      T20 = T19;
    } else {
      T20 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    if (T20 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      T21 = Ttrace_dfm_fileTVdfmc_flow_graph;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      if (T21 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        cr_ = Kmodel_compilation_recordVdfmc_commonI(code_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        sr_ = CALL1(&Kcompilation_record_source_recordVdfmc_common, cr_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        lc_ = CALL1(&Ksource_record_locationVsource_records, sr_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        T25 = CALL1(&Klocator_baseYlocatorsVsystem, lc_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        CONGRUENT_CALL_PROLOG(&KasVKd, 2);
        T26 = CONGRUENT_CALL2(&KLsymbolGVKd, T25);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        T27 = primitive_idQ(T26,T21);
        T28 = T27;
      } else {
        T28 = &KPtrueVKi;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      T29 = T28;
    } else {
      T29 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    if (T29 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      T30 = Ttrace_dfm_methodTVdfmc_flow_graph;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      if (T30 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        CONGRUENT_CALL_PROLOG(&Kdebug_nameVKe, 1);
        debug_name_ = CONGRUENT_CALL1(code_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        T32 = primitive_instanceQ(debug_name_,&KLvariable_name_fragmentGVdfmc_reader);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        if (T32 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
          T33 = debug_name_;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
          T34 = SLOT_VALUE(T33, 2);
          T39 = T34;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
          if (debug_name_ != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
            CONGRUENT_CALL_PROLOG(&KasVKd, 2);
            T35_0 = CONGRUENT_CALL2(&KLsymbolGVKd, debug_name_);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
            T36_0 = T35_0;
            {
              MV_CHECK_TYPE_PROLOGUE(T35_0);
              primitive_type_check(T36_0, &K58);
              MV_CHECK_TYPE_EPILOGUE();
            }
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
            T37 = T36_0;
            T38 = T37;
          } else {
            T38 = &KPfalseVKi;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
          T39 = T38;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
        T40 = primitive_idQ(T39,T30);
        T41 = T40;
      } else {
        T41 = &KPtrueVKi;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
      T42 = T41;
    } else {
      T42 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    if (T42 != &KPfalseVKi) {
      T4 = code_;
    } else {
      T4 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    Ttrace_optimizationsTVdfmc_optimization = T4;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
    CONGRUENT_CALL_PROLOG(&KbodyVdfmc_modeling, 1);
    T5 = CONGRUENT_CALL1(code_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
    T43 = primitive_not(T5);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
    if (T5 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
      T44 = SLOT_VALUE_INITD(code_, 7);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
      T45 = primitive_cast_integer_as_raw(T44);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
      T46 = primitive_machine_word_logbitQ(2,T45);
      T6 = T46;
    } else {
      T6 = T43;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
    if (T6 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
      T10 = &KPfalseVKi;
      MV_SET_ELT(0, &KPfalseVKi);
      MV_SET_COUNT(1);
      T11 = T10;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:87
      ENTER_UNWIND_FRAME(T7);
      if (!nlx_setjmp(FRAME_DEST(T7))) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
        CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
        T47 = CONGRUENT_CALL1(code_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
        T48 = CALL1(&KinnersVdfmc_flow_graphMM0, T47);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
        T49T = T48;
      L0: ;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
          T49 = T49T;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
          T50 = primitive_idQ(T49,&KPempty_listVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
          if (T50 == &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            T51 = SLOT_VALUE_INITD(T49, 0);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            T52 = CALL1(&KlambdaVdfmc_flow_graph, T51);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, &Kanonymous_of_really_run_compilation_passesF64, T52);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            T53 = SLOT_VALUE_INITD(T49, 1);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            T54_0 = T53;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            T55_0 = T54_0;
            {
              MV_CHECK_TYPE_PROLOGUE(T54_0);
              primitive_type_check(T55_0, &KLlistGVKd);
              MV_CHECK_TYPE_EPILOGUE();
            }
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            T56 = T55_0;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
            T49T = T56;
            goto L0;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
        Kanonymous_of_really_run_compilation_passesF64I(code_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T8 = MAKE_CLOSURE(&KUloopUF65, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        INIT_CLOSURE(T8, 1, T8);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        get_teb()->function = T8;
        T9 = KUloopUF65I(code_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:87
        FALL_THROUGH_UNWIND(T9);
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
      CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
      T57 = CONGRUENT_CALL1(code_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
      T58 = CALL1(&KinnersVdfmc_flow_graphMM0, T57);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
      T59T = T58;
    L1: ;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
        T59 = T59T;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
        T60 = primitive_idQ(T59,&KPempty_listVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
        if (T60 == &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          T61 = SLOT_VALUE_INITD(T59, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          T62 = CALL1(&KlambdaVdfmc_flow_graph, T61);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, &Kanonymous_of_really_run_compilation_passesF63, T62);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          T63 = SLOT_VALUE_INITD(T59, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          T64_0 = T63;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          T65_0 = T64_0;
          {
            MV_CHECK_TYPE_PROLOGUE(T64_0);
            primitive_type_check(T65_0, &KLlistGVKd);
            MV_CHECK_TYPE_EPILOGUE();
          }
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          T66 = T65_0;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
          T59T = T66;
          goto L1;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
      Kanonymous_of_really_run_compilation_passesF63I(code_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:87
      CONTINUE_UNWIND();
      T11 = T9;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:86
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
    FALL_THROUGH_UNWIND(T11);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
  Ttrace_optimizationsTVdfmc_optimization = Pold_valueP_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:85
  CONTINUE_UNWIND();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:84
  return(T11);
}

static dylan_value KUloopUF65I (dylan_value code_) {
  volatile dylan_value Uunwind_exceptionUPexit_23_;
  volatile dylan_value T2;
  volatile dylan_value Uoriginal_handlersUF3;
  volatile dylan_value T4;
  volatile dylan_value T5;
  volatile dylan_value T6;
  volatile dylan_value Uunwind_exceptionUPexit_24_;
  volatile dylan_value T8;
  volatile dylan_value Uoriginal_handlersUF9;
  volatile dylan_value T10;
  volatile dylan_value T11;
  volatile dylan_value T12;
  volatile dylan_value T13;
  volatile dylan_value T14;
  volatile dylan_value T15;
  volatile dylan_value T16;
  volatile dylan_value T17;
  volatile _KLsimple_object_vectorGVKd_2 T18 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  volatile dylan_value T19;
  volatile _KLsimple_object_vectorGVKd_8 T20 = {&KLsimple_object_vectorGVKdW, (dylan_value) 33};
  volatile dylan_value T21_0;
  volatile dylan_value T22;
  volatile dylan_value T23;
  volatile _KLsimple_object_vectorGVKd_2 T24 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  volatile dylan_value T25;
  volatile _KLsimple_object_vectorGVKd_8 T26 = {&KLsimple_object_vectorGVKdW, (dylan_value) 33};
  volatile dylan_value T27_0;
  volatile dylan_value T28;
  volatile dylan_value T29;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  ENTER_EXIT_FRAME(Uunwind_exceptionUPexit_23_);
  if (nlx_setjmp(FRAME_DEST(Uunwind_exceptionUPexit_23_))) {
    T17 = FRAME_RETVAL(Uunwind_exceptionUPexit_23_);
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    Uoriginal_handlersUF3 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T4 = MAKE_CLOSURE(&KUhandler_functionUF115, 4);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    INIT_CLOSURE(T4, 4, CREF(0), code_, Uoriginal_handlersUF3, Uunwind_exceptionUPexit_23_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T18.vector_element_[0] = &KJformat_string_;
    T18.vector_element_[1] = &K72;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T19 = primitive_copy_vector(&T18);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T20.vector_element_[0] = &KJtype_;
    T20.vector_element_[1] = &KLsimple_restartGVKd;
    T20.vector_element_[2] = &KJfunction_;
    T20.vector_element_[3] = T4;
    T20.vector_element_[4] = &KJtest_;
    T20.vector_element_[5] = &KPfalseVKi;
    T20.vector_element_[6] = &KJinit_arguments_;
    T20.vector_element_[7] = T19;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T21_0 = KLhandlerGZ32ZconstructorVKiMM0I(&KLhandlerGVKi, &T20, &KLsimple_restartGVKd, T4, &KPfalseVKi, T19);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T22 = T21_0;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T5 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    T23 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    SLOT_VALUE_SETTER(T22, T23, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    SLOT_VALUE_SETTER(T5, T23, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    primitive_write_thread_variable(Tcurrent_handlersTVKi, T23);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    ENTER_UNWIND_FRAME(T6);
    if (!nlx_setjmp(FRAME_DEST(T6))) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
      ENTER_EXIT_FRAME(Uunwind_exceptionUPexit_24_);
      if (nlx_setjmp(FRAME_DEST(Uunwind_exceptionUPexit_24_))) {
            T16 = FRAME_RETVAL(Uunwind_exceptionUPexit_24_);
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        Uoriginal_handlersUF9 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T10 = MAKE_CLOSURE_INITD(&KUhandler_functionUF112, 2, Uoriginal_handlersUF9, Uunwind_exceptionUPexit_24_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T24.vector_element_[0] = &KJformat_string_;
        T24.vector_element_[1] = &K73;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T25 = primitive_copy_vector(&T24);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T26.vector_element_[0] = &KJtype_;
        T26.vector_element_[1] = &KLsimple_restartGVKd;
        T26.vector_element_[2] = &KJfunction_;
        T26.vector_element_[3] = T10;
        T26.vector_element_[4] = &KJtest_;
        T26.vector_element_[5] = &KPfalseVKi;
        T26.vector_element_[6] = &KJinit_arguments_;
        T26.vector_element_[7] = T25;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T27_0 = KLhandlerGZ32ZconstructorVKiMM0I(&KLhandlerGVKi, &T26, &KLsimple_restartGVKd, T10, &KPfalseVKi, T25);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T28 = T27_0;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T11 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        T29 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        SLOT_VALUE_SETTER(T28, T29, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        SLOT_VALUE_SETTER(T11, T29, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        primitive_write_thread_variable(Tcurrent_handlersTVKi, T29);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        ENTER_UNWIND_FRAME(T12);
        if (!nlx_setjmp(FRAME_DEST(T12))) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:94
          CONGRUENT_CALL_PROLOG(&Kmodel_creatorVdfmc_common, 1);
          T13 = CONGRUENT_CALL1(code_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:94
          T14 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF74, 1, code_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:94
          T15 = Kdo_with_dependent_contextVdfmc_namespaceI((dylan_value) 37, T13, T14);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
          FALL_THROUGH_UNWIND(T15);
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        primitive_write_thread_variable(Tcurrent_handlersTVKi, Uoriginal_handlersUF9);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
        CONTINUE_UNWIND();
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
      T16 = T15;
        /* invalidate Uunwind_exceptionUPexit_24_ */
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
      FALL_THROUGH_UNWIND(T16);
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    primitive_write_thread_variable(Tcurrent_handlersTVKi, Uoriginal_handlersUF3);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
    CONTINUE_UNWIND();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  T17 = T16;
    /* invalidate Uunwind_exceptionUPexit_23_ */
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  return(T17);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF64I (dylan_value f_) {
  dylan_value T1;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:89
  CALL2(&Klambda_optimizedQ_setterVdfmc_modelingMM0, &KPtrueVKi, f_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:89
  T1 = &KPtrueVKi;
  MV_SET_ELT(0, &KPtrueVKi);
  MV_SET_COUNT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:88
  return(T1);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF63I (dylan_value f_) {
  dylan_value T1;
  dylan_value T2;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:171
  CALL2(&Koptimization_queue_setterVdfmc_modelingMM0, &KPfalseVKi, f_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:172
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T1 = CONGRUENT_CALL1(f_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:172
  T2 = CALL1(&Kstrip_environmentVdfmc_flow_graphMM0, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:170
  return(T2);
}

static dylan_value KUhandler_functionUF115I (dylan_value r_, dylan_value Unext_handlerU_) {
  dylan_value T3;
  dylan_value all_values_;
  dylan_value T5;
  dylan_value T6;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  primitive_write_thread_variable(Tcurrent_handlersTVKi, CREF(2));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  get_teb()->function = CREF(0);
  T3 = KUloopUF65I(CREF(1));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  all_values_ = MV_GET_REST_AT(T3, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  T5 = MV_SET_REST_AT(all_values_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  T6 = NLX(CREF(3), T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  return(T6);
}

static dylan_value KUhandler_functionUF112I (dylan_value r_, dylan_value Unext_handlerU_) {
  dylan_value T3;
  dylan_value all_values_;
  dylan_value T5;
  dylan_value T6;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  primitive_write_thread_variable(Tcurrent_handlersTVKi, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  T3 = &KPfalseVKi;
  MV_SET_ELT(0, &KPfalseVKi);
  MV_SET_COUNT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  all_values_ = MV_GET_REST_AT(T3, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  T5 = MV_SET_REST_AT(all_values_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  T6 = NLX(CREF(1), T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:91
  return(T6);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF74I () {
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11T, T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16_0;
  dylan_value T17_0;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23T, T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28_0;
  dylan_value T29_0;
  dylan_value T30;
  dylan_value T31;
  dylan_value T32;
  dylan_value T33;
  dylan_value T34;
  dylan_value T35T, T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39;
  dylan_value T40_0;
  dylan_value T41_0;
  dylan_value T42;
  dylan_value T43;
  dylan_value T44;
  dylan_value T45;
  dylan_value somethingQ_;
  dylan_value T47;
  dylan_value T48;
  dylan_value T49;
  dylan_value T50T, T50;
  dylan_value T51;
  dylan_value T52;
  dylan_value T53;
  dylan_value T54;
  dylan_value T55_0;
  dylan_value T56_0;
  dylan_value T57;
  dylan_value countF58T, countF58;
  dylan_value T59;
  dylan_value T60;
  dylan_value T61;
  dylan_value T62;
  dylan_value T63;
  dylan_value T64;
  dylan_value T65T, T65;
  dylan_value T66;
  dylan_value T67;
  dylan_value T68;
  dylan_value T69;
  dylan_value T70_0;
  dylan_value T71_0;
  dylan_value T72;
  dylan_value T73;
  dylan_value T74;
  dylan_value T75;
  dylan_value T76;
  dylan_value T77T, T77;
  dylan_value T78;
  dylan_value T79;
  dylan_value T80;
  dylan_value T81;
  dylan_value T82_0;
  dylan_value T83_0;
  dylan_value T84;
  dylan_value T85;
  dylan_value T86;
  dylan_value T87;
  dylan_value T88;
  dylan_value T89T, T89;
  dylan_value T90;
  dylan_value T91;
  dylan_value T92;
  dylan_value T93;
  dylan_value T94_0;
  dylan_value T95_0;
  dylan_value T96;
  dylan_value T97;
  dylan_value T98;
  dylan_value T99;
  dylan_value T100;
  dylan_value T101T, T101;
  dylan_value T102;
  dylan_value T103;
  dylan_value T104;
  dylan_value T105;
  dylan_value T106_0;
  dylan_value T107_0;
  dylan_value T108;
  dylan_value T109;
  dylan_value T110;
  dylan_value T111;
  dylan_value T112;
  dylan_value T113;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:94
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:95
  T7 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:95
  if (T7 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:95
    T8 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:95
    CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T8, IKJstart_phase_for_code_, &K92);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:95
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  T0 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF110, 1, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T9 = CONGRUENT_CALL1(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  T10 = CALL1(&KinnersVdfmc_flow_graphMM0, T9);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  T11T = T10;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
    T11 = T11T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
    T12 = primitive_idQ(T11,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
    if (T12 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      T13 = SLOT_VALUE_INITD(T11, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      T14 = CALL1(&KlambdaVdfmc_flow_graph, T13);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T0, T14);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      T15 = SLOT_VALUE_INITD(T11, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      T16_0 = T15;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      T17_0 = T16_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T16_0);
        primitive_type_check(T17_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      T18 = T17_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
      T11T = T18;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  get_teb()->function = T0;
  Kanonymous_of_really_run_compilation_passesF110I(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:105
  T19 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:105
  if (T19 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:105
    T20 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:105
    CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T20, IKJstart_phase_for_code_, &K93);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:105
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  T1 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF109, 1, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T21 = CONGRUENT_CALL1(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  T22 = CALL1(&KinnersVdfmc_flow_graphMM0, T21);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  T23T = T22;
L1: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
    T23 = T23T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
    T24 = primitive_idQ(T23,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
    if (T24 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      T25 = SLOT_VALUE_INITD(T23, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      T26 = CALL1(&KlambdaVdfmc_flow_graph, T25);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T1, T26);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      T27 = SLOT_VALUE_INITD(T23, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      T28_0 = T27;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      T29_0 = T28_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T28_0);
        primitive_type_check(T29_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      T30 = T29_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
      T23T = T30;
      goto L1;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  get_teb()->function = T1;
  Kanonymous_of_really_run_compilation_passesF109I(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:111
  T31 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:111
  if (T31 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:111
    T32 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:111
    CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T32, IKJstart_phase_for_code_, &K94);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:111
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  T2 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF108, 1, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T33 = CONGRUENT_CALL1(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  T34 = CALL1(&KinnersVdfmc_flow_graphMM0, T33);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  T35T = T34;
L2: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
    T35 = T35T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
    T36 = primitive_idQ(T35,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
    if (T36 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      T37 = SLOT_VALUE_INITD(T35, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      T38 = CALL1(&KlambdaVdfmc_flow_graph, T37);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T2, T38);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      T39 = SLOT_VALUE_INITD(T35, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      T40_0 = T39;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      T41_0 = T40_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T40_0);
        primitive_type_check(T41_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      T42 = T41_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
      T35T = T42;
      goto L2;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  get_teb()->function = T2;
  Kanonymous_of_really_run_compilation_passesF108I(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:129
  countF58T = (dylan_value) 1;
L3: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:129
    countF58 = countF58T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:121
    somethingQ_ = MAKE_DYLAN_VALUE_CELL(&KPfalseVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
    T43 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF107, 2, CREF(0), somethingQ_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
    CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
    T48 = CONGRUENT_CALL1(CREF(0));
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
    T49 = CALL1(&KinnersVdfmc_flow_graphMM0, T48);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
    T50T = T49;
  L4: ;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
      T50 = T50T;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
      T51 = primitive_idQ(T50,&KPempty_listVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
      if (T51 == &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        T52 = SLOT_VALUE_INITD(T50, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        T53 = CALL1(&KlambdaVdfmc_flow_graph, T52);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T43, T53);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        T54 = SLOT_VALUE_INITD(T50, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        T55_0 = T54;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        T56_0 = T55_0;
        {
          MV_CHECK_TYPE_PROLOGUE(T55_0);
          primitive_type_check(T56_0, &KLlistGVKd);
          MV_CHECK_TYPE_EPILOGUE();
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        T57 = T56_0;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
        T50T = T57;
        goto L4;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
    get_teb()->function = T43;
    Kanonymous_of_really_run_compilation_passesF107I(CREF(0));
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:127
    T47 = GET_DYLAN_VALUE_CELL_VAL(somethingQ_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:127
    if (T47 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:128
      CONGRUENT_CALL_PROLOG(&KLVKd, 2);
      T44 = CONGRUENT_CALL2(countF58, (dylan_value) 201);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:128
      if (T44 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:129
        CONGRUENT_CALL_PROLOG(&KAVKd, 2);
        T45 = CONGRUENT_CALL2(countF58, (dylan_value) 5);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:129
        countF58T = T45;
        goto L3;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:131
        T59 = Ttrace_optimizationsTVdfmc_optimization;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:131
        if (T59 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:131
          T60 = Ttrace_optimizationsTVdfmc_optimization;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:131
          CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T60, IKJdebug_string_, &K10);
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:131
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:128
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:127
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:129
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:136
  T61 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:136
  if (T61 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:136
    T62 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:136
    CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T62, IKJstart_phase_for_code_, &K95);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:136
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  T3 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF106, 1, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T63 = CONGRUENT_CALL1(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  T64 = CALL1(&KinnersVdfmc_flow_graphMM0, T63);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  T65T = T64;
L5: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
    T65 = T65T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
    T66 = primitive_idQ(T65,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
    if (T66 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      T67 = SLOT_VALUE_INITD(T65, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      T68 = CALL1(&KlambdaVdfmc_flow_graph, T67);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T3, T68);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      T69 = SLOT_VALUE_INITD(T65, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      T70_0 = T69;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      T71_0 = T70_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T70_0);
        primitive_type_check(T71_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      T72 = T71_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
      T65T = T72;
      goto L5;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  get_teb()->function = T3;
  Kanonymous_of_really_run_compilation_passesF106I(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:145
  T73 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:145
  if (T73 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:145
    T74 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:145
    CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T74, IKJstart_phase_for_code_, &K96);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:145
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  T4 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF105, 1, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T75 = CONGRUENT_CALL1(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  T76 = CALL1(&KinnersVdfmc_flow_graphMM0, T75);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  T77T = T76;
L6: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
    T77 = T77T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
    T78 = primitive_idQ(T77,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
    if (T78 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      T79 = SLOT_VALUE_INITD(T77, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      T80 = CALL1(&KlambdaVdfmc_flow_graph, T79);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T4, T80);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      T81 = SLOT_VALUE_INITD(T77, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      T82_0 = T81;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      T83_0 = T82_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T82_0);
        primitive_type_check(T83_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      T84 = T83_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
      T77T = T84;
      goto L6;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  get_teb()->function = T4;
  Kanonymous_of_really_run_compilation_passesF105I(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:154
  T85 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:154
  if (T85 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:154
    T86 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:154
    CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T86, IKJstart_phase_for_code_, &K97);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:154
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  T5 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF104, 1, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T87 = CONGRUENT_CALL1(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  T88 = CALL1(&KinnersVdfmc_flow_graphMM0, T87);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  T89T = T88;
L7: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
    T89 = T89T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
    T90 = primitive_idQ(T89,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
    if (T90 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      T91 = SLOT_VALUE_INITD(T89, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      T92 = CALL1(&KlambdaVdfmc_flow_graph, T91);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T5, T92);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      T93 = SLOT_VALUE_INITD(T89, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      T94_0 = T93;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      T95_0 = T94_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T94_0);
        primitive_type_check(T95_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      T96 = T95_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
      T89T = T96;
      goto L7;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  get_teb()->function = T5;
  Kanonymous_of_really_run_compilation_passesF104I(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:160
  T97 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:160
  if (T97 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:160
    T98 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:160
    CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T98, IKJstart_phase_for_code_, &K98);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:160
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  T6 = MAKE_CLOSURE_INITD(&Kanonymous_of_really_run_compilation_passesF103, 1, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
  T99 = CONGRUENT_CALL1(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  T100 = CALL1(&KinnersVdfmc_flow_graphMM0, T99);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  T101T = T100;
L8: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
    T101 = T101T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
    T102 = primitive_idQ(T101,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
    if (T102 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      T103 = SLOT_VALUE_INITD(T101, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      T104 = CALL1(&KlambdaVdfmc_flow_graph, T103);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      CALL2(&Kdo_all_lambdasVdfmc_flow_graphMM0, T6, T104);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      T105 = SLOT_VALUE_INITD(T101, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      T106_0 = T105;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      T107_0 = T106_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T106_0);
        primitive_type_check(T107_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      T108 = T107_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
      T101T = T108;
      goto L8;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  get_teb()->function = T6;
  Kanonymous_of_really_run_compilation_passesF103I(CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:166
  T109 = Ttrace_optimizationsTVdfmc_optimization;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:166
  if (T109 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:166
    T110 = Ttrace_optimizationsTVdfmc_optimization;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:166
    T111 = CALL3(&Ktrace_dfm_phaseVdfmc_flow_graph, T110, IKJfinished_phase_for_code_, &K100);
    T113 = T111;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:166
    T112 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T113 = T112;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:166
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:94
  return(T113);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF110I (dylan_value f_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
  T7 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
  if (T7 != &KPfalseVKi) {
    T3 = T7;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
    T2 = CALL1(&Kmaybe_delete_function_bodyVdfmc_flow_graph, f_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
    T8 = primitive_not(T2);
    T3 = T8;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:102
    T4 = CALL1(&Keliminate_assignmentsVdfmc_optimizationMM0, f_);
    T6 = T4;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
    T5 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T6 = T5;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:101
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:97
  return(T6);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF109I (dylan_value f_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:107
  T7 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:107
  if (T7 != &KPfalseVKi) {
    T3 = T7;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:107
    T2 = Klambda_usedQVdfmc_flow_graphMM0I(f_);
    T3 = T2;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:107
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:107
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:108
    T4 = CALL1(&Kmaybe_rename_temporaries_in_conditionalsVdfmc_optimizationMM0, f_);
    T6 = T4;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:107
    T5 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T6 = T5;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:107
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:106
  return(T6);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF108I (dylan_value f_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:115
  T7 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:115
  if (T7 != &KPfalseVKi) {
    T3 = T7;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:115
    T2 = Klambda_usedQVdfmc_flow_graphMM0I(f_);
    T3 = T2;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:115
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:115
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:117
    T4 = Krun_optimizationsVdfmc_optimizationMM0I(f_);
    T6 = T4;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:115
    T5 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T6 = T5;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:115
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:114
  return(T6);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF107I (dylan_value f_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:123
  T10 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:123
  if (T10 != &KPfalseVKi) {
    T3 = T10;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:123
    T2 = Klambda_usedQVdfmc_flow_graphMM0I(f_);
    T3 = T2;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:123
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:123
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:124
    T9 = GET_DYLAN_VALUE_CELL_VAL(CREF(1));
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:124
    if (T9 != &KPfalseVKi) {
      T5 = T9;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:124
      T4 = Krun_optimizationsVdfmc_optimizationMM0I(f_);
      T5 = T4;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:124
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:124
    SET_DYLAN_VALUE_CELL_VAL(CREF(1), T5);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:124
    T6 = T5;
    MV_SET_ELT(0, T5);
    MV_SET_COUNT(1);
    T8 = T6;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:123
    T7 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T8 = T7;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:123
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:122
  return(T8);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF106I (dylan_value f_) {
  dylan_value T2;
  dylan_value Utmp_;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
  T9 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
  if (T9 != &KPfalseVKi) {
    Utmp_ = T9;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
    T2 = Klambda_usedQVdfmc_flow_graphMM0I(f_);
    Utmp_ = T2;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
  if (Utmp_ != &KPfalseVKi) {
    T5 = Utmp_;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
    CONGRUENT_CALL_PROLOG(&Klambda_top_levelQVdfmc_modeling, 1);
    T4 = CONGRUENT_CALL1(f_);
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:141
    CALL1(&Kshare_common_subexpressionsVdfmc_optimizationMM0, f_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:142
    T6 = CALL1(&Kdelete_useless_environmentsVdfmc_optimizationMM0, f_);
    T8 = T6;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
    T7 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T8 = T7;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:140
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:139
  return(T8);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF105I (dylan_value f_) {
  dylan_value T2;
  dylan_value Utmp_;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
  T9 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
  if (T9 != &KPfalseVKi) {
    Utmp_ = T9;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
    T2 = Klambda_usedQVdfmc_flow_graphMM0I(f_);
    Utmp_ = T2;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
  if (Utmp_ != &KPfalseVKi) {
    T5 = Utmp_;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
    CONGRUENT_CALL_PROLOG(&Klambda_top_levelQVdfmc_modeling, 1);
    T4 = CONGRUENT_CALL1(f_);
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:149
    CALL1(&Kanalyze_dynamic_extent_forVdfmc_optimization, f_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:150
    CALL1(&Kanalyze_environmentsVdfmc_flow_graphMM0, f_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:151
    T6 = CALL1(&Kcheck_optimized_computationsVdfmc_optimizationMM0, f_);
    T8 = T6;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
    T7 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T8 = T7;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:148
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:147
  return(T8);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF104I (dylan_value f_) {
  dylan_value T2;
  dylan_value Utmp_;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
  T10 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
  if (T10 != &KPfalseVKi) {
    Utmp_ = T10;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
    T2 = Klambda_usedQVdfmc_flow_graphMM0I(f_);
    Utmp_ = T2;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
  if (Utmp_ != &KPfalseVKi) {
    T5 = Utmp_;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
    CONGRUENT_CALL_PROLOG(&Klambda_top_levelQVdfmc_modeling, 1);
    T4 = CONGRUENT_CALL1(f_);
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:157
    CONGRUENT_CALL_PROLOG(&KenvironmentVdfmc_modeling, 1);
    T6 = CONGRUENT_CALL1(f_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:157
    T7 = CALL1(&Kprune_closureVdfmc_optimizationMM0, T6);
    T9 = T7;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
    T8 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T9 = T8;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:156
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:155
  return(T9);
}

static dylan_value Kanonymous_of_really_run_compilation_passesF103I (dylan_value f_) {
  dylan_value T2;
  dylan_value Utmp_;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
  T9 = primitive_idQ(f_,CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
  if (T9 != &KPfalseVKi) {
    Utmp_ = T9;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
    T2 = Klambda_usedQVdfmc_flow_graphMM0I(f_);
    Utmp_ = T2;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
  if (Utmp_ != &KPfalseVKi) {
    T5 = Utmp_;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
    CONGRUENT_CALL_PROLOG(&Klambda_top_levelQVdfmc_modeling, 1);
    T4 = CONGRUENT_CALL1(f_);
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:163
    CONGRUENT_CALL_PROLOG(&Kconstant_fold_closureVdfmc_optimization, 1);
    T6 = CONGRUENT_CALL1(f_);
    T8 = T6;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
    T7 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T8 = T7;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:162
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:161
  return(T8);
}


/* SYSTEM INIT CODE */

void _Init_dfmc_optimization__X_optimize_for_system () {
  extern dylan_value KPresolve_symbolVKiI(dylan_value);
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJhighlight_queue_);
    if (T0 != &KJhighlight_queue_) {
      IKJhighlight_queue_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJdebug_string_);
    if (T0 != &KJdebug_string_) {
      IKJdebug_string_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJoptimizing_);
    if (T0 != &KJoptimizing_) {
      IKJoptimizing_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJstart_phase_for_code_);
    if (T0 != &KJstart_phase_for_code_) {
      IKJstart_phase_for_code_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJfinished_phase_for_code_);
    if (T0 != &KJfinished_phase_for_code_) {
      IKJfinished_phase_for_code_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dfmc_optimization__X_optimize_for_user () {
{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/optimization/optimize.dylan:236
  T0 = KPadd_a_methodVKnI(&Kre_optimize_type_estimateVdfmc_flow_graph, &Kre_optimize_type_estimateVdfmc_flow_graphMdfmc_optimizationM0, &Kdfmc_optimization_libraryYdylan_userVdfmc_optimization, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I2;
}
I2:

  return;
}


/* eof */
