#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;

#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(4);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(8);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(0);

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

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 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 instanceQ_iep_;
  dylan_value debug_name_;
  dylan_value class_implementation_class_;
  dylan_value class_subtype_bit_;
  dylan_value class_module_;
} _KLfunction_classGVKi;

typedef struct {
  dylan_value wrapper;
  dylan_value llvm_module_name_;
  dylan_value llvm_module_target_triple_;
  dylan_value llvm_module_data_layout_;
  dylan_value llvm_module_asm_;
  dylan_value llvm_module_globals_;
  dylan_value llvm_module_functions_;
  dylan_value llvm_module_aliases_;
  dylan_value llvm_module_named_metadata_;
  dylan_value Pnamed_metadata_table_;
  dylan_value llvm_module_dependent_libraries_;
  dylan_value llvm_type_table_;
  dylan_value llvm_global_table_;
} _KLllvm_moduleGVllvm;

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value next_label_;
} _KLlabeling_stateGVdfmc_back_end;

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

typedef struct {
  dylan_value wrapper;
  dylan_value users_;
  dylan_value emitted_name_;
  dylan_value function_;
  dylan_value code_;
} _KLBiepGVdfmc_modeling;

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

typedef struct {
  dylan_value wrapper;
  dylan_value heap_root_init_code_;
  dylan_value heap_root_system_init_code_;
  dylan_value heap_back_pointers_;
  dylan_value heap_defined_bindings_;
  dylan_value heap_referenced_bindings_;
  dylan_value heap_defined_objects_;
  dylan_value heap_referenced_objects_;
  dylan_value heap_defined_repeated_object_sizes_;
  dylan_value heap_referenced_repeated_object_sizes_;
  dylan_value heap_load_bound_references_;
  dylan_value heap_symbols_;
  dylan_value Pheap_next_id_;
  dylan_value heap_size_;
  dylan_value heap_deferred_model_references_;
  dylan_value heap_record_repeated_object_sizesQ_;
} _KLmodel_heapGVdfmc_back_end;

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

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(13);
define__KLbyte_stringGVKd(11);
define__KLbyte_stringGVKd(4);
define__KLbyte_stringGVKd(5);
define__KLbyte_stringGVKd(3);
define__KLbyte_stringGVKd(24);
define__KLbyte_stringGVKd(26);

#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 signature_properties_;
  dylan_value signature_required_;
} _KLobject_signatureGVKe;

typedef struct {
  dylan_value wrapper;
  dylan_value signature_properties_;
  dylan_value signature_required_;
  dylan_value signature_keys_;
  dylan_value signature_key_types_;
} _KLkeyword_signatureGVKe;

typedef struct {
  dylan_value wrapper;
  dylan_value llvm_builder_value_function_;
  dylan_value llvm_builder_module_;
  dylan_value llvm_builder_function_;
  dylan_value llvm_builder_basic_block_;
  dylan_value llvm_builder_dbg_;
  dylan_value mangler_;
  dylan_value Ptype_table_;
  dylan_value Praw_type_table_;
  dylan_value Praw_type_dbg_encoding_table_;
  dylan_value Ppointer_to_table_;
  dylan_value Pdirect_object_table_;
  dylan_value Praw_object_table_;
  dylan_value Preference_table_;
  dylan_value Pprimitive_function_table_;
  dylan_value Pbyte_character_constants_;
  dylan_value Psource_record_dbg_file_table_;
  dylan_value llvm_back_end_dbg_functions_;
  dylan_value Pdbg_type_table_;
  dylan_value Pmv_struct_type_;
  dylan_value llvm_teb_struct_type_;
  dylan_value Pteb_struct_field_index_;
} _KLllvm_back_endGVdfmc_llvm_back_end;

typedef struct {
  dylan_value wrapper;
  dylan_value compilation_record_original_library_;
  dylan_value private_compilation_record_module_;
  dylan_value private_compilation_record_top_level_forms_;
  dylan_value compilation_record_definitions_installedQ_;
  dylan_value compilation_record_model_heap_;
  dylan_value private_compilation_record_heap_referenced_objects_;
  dylan_value compilation_record_needs_linkingQ_;
  dylan_value compilation_record_sequence_number_;
  dylan_value compilation_record_source_record_;
  dylan_value compilation_record_source_line_count_;
  dylan_value compilation_record_model_properties_;
  dylan_value private_compilation_record_dependency_table_;
  dylan_value private_compilation_record_dispatch_decisions_;
  dylan_value compilation_record_inline_only_table_;
  dylan_value private_compilation_record_back_end_data_;
  dylan_value compilation_record_approximate_model_heap_size_;
  dylan_value compilation_record_data_size_;
  dylan_value compilation_record_code_size_;
  dylan_value compilation_record_preceding_line_count_;
} _KLcompilation_recordGVdfmc_common;


/* 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 Kemit_allVdfmc_back_end;
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_llvm_back_end_libraryYdylan_userVdfmc_llvm_back_end;
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 _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLsymbolGVKd KJformat_string_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
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 _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLsealed_generic_functionGVKe Kcompilation_record_nameVdfmc_common;
extern _KLsealed_generic_functionGVKe Kllvm_back_end_target_tripleVdfmc_llvm_back_end;
extern _KLsealed_generic_functionGVKe Kllvm_back_end_data_layoutVdfmc_llvm_back_end;
extern _KLsymbolGVKd KJname_;
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLclassGVKd KLllvm_moduleGVllvm;
extern _KLmm_wrapperGVKi_0 KLllvm_moduleGVllvmW;
dylan_value Kcompilation_record_back_end_data_setterVdfmc_commonMM0I (dylan_value, dylan_value);
dylan_value Kllvm_register_typesVdfmc_llvm_back_endMM0I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe Kheap_defined_object_sequenceVdfmc_back_end;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLsealed_generic_functionGVKe Kcurrent_library_descriptionVdfmc_common;
extern _KLkeyword_methodGVKe Kcall_with_build_area_outputVdfmc_namespace;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLincremental_generic_functionGVKe Kforward_iteration_protocolVKd;
extern _KLsealed_generic_functionGVKe Kemit_codeVdfmc_llvm_back_end;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLlabeling_stateGVdfmc_back_end;
extern _KLmm_wrapperGVKi_0 KLlabeling_stateGVdfmc_back_endW;
extern _KLsealed_generic_functionGVKe Kheap_root_system_init_codeVdfmc_back_end;
extern _KLsealed_generic_functionGVKe KCiepVdfmc_modeling;
extern _KLsealed_generic_functionGVKe Kheap_root_init_codeVdfmc_back_end;
dylan_value Kllvm_compilation_record_dbg_compile_unitVdfmc_llvm_back_endMM0I (dylan_value back_end_, dylan_value cr_);
dylan_value Kremove_all_keysXVKeMM0I (dylan_value);
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
dylan_value Ksize_setterVKdMM1I (dylan_value, dylan_value);
dylan_value Kheap_defined_object_sequenceVdfmc_back_endI (dylan_value);
extern _KLclassGVKd KLBiepGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBiepGVdfmc_modelingW;
dylan_value Klambda_top_levelQVdfmc_modelingMM2I (dylan_value);
dylan_value Kretract_method_dfmVdfmc_conversionMM0I (dylan_value);
extern _KLsealed_generic_functionGVKe KfunctionVdfmc_modeling;
extern _KLsealed_generic_functionGVKe Kretract_method_dfmVdfmc_conversion;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLmodel_heapGVdfmc_back_end;
extern _KLmm_wrapperGVKi_0 KLmodel_heapGVdfmc_back_endW;
extern _KLclassGVKd KLsimple_typechecked_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_cache_header_engine_nodeGVKgW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLsealed_generic_functionGVKe Kemit_dfmVdfmc_back_end;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLclassGVKd KLkeyword_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureGVKeW;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLclassGVKd KLllvm_back_endGVdfmc_llvm_back_end;
extern _KLmm_wrapperGVKi_0 KLllvm_back_endGVdfmc_llvm_back_endW;
extern _KLclassGVKd KLcompilation_recordGVdfmc_common;
extern _KLmm_wrapperGVKi_0 KLcompilation_recordGVdfmc_commonW;
extern dylan_value Tcurrent_handlersTVKi;
extern dylan_value Tinit_labeling_stateTVdfmc_back_end;
extern dylan_value Tretract_dfmQTVdfmc_back_end;

/* Defined object declarations */

extern _KLkeyword_methodGVKe Kemit_allVdfmc_back_endMdfmc_llvm_back_endM0;
dylan_value Kemit_allVdfmc_back_endMdfmc_llvm_back_endM0I (dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_closure_methodGVKi_0 KUloopUF5;
static dylan_value KUloopUF5I (dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF34;
static dylan_value KUhandler_functionUF34I (dylan_value, dylan_value);
static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF31;
static dylan_value KUhandler_functionUF31I (dylan_value, dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_emit_allF30;
static dylan_value Kanonymous_of_emit_allF30I (dylan_value);
static _KLbyte_stringGVKd_26 K12;
static _KLbyte_stringGVKd_24 K13;
static _KLsymbolGVKd KJtarget_triple_;
static _KLsymbolGVKd KJdata_layout_;
static _KLsymbolGVKd KJbase_;
static _KLbyte_stringGVKd_3 K17;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K18;
static _KLsymbolGVKd KJinitQ_;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K20;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K21;
extern _KLsimple_methodGVKe Kretract_local_methods_in_heapVdfmc_llvm_back_endMM0;
dylan_value Kretract_local_methods_in_heapVdfmc_llvm_back_endMM0I (dylan_value);
static _KLsignatureGVKe K24;
static _KLsimple_object_vectorGVKd_1 K25;
static _KLbyte_stringGVKd_5 K26;
static _KLbyte_stringGVKd_4 K27;
static _KLbyte_stringGVKd_11 K28;
static _KLbyte_stringGVKd_13 K29;
static _KLsignatureGVKe K32;
static _KLsimple_object_vectorGVKd_2 K33;
static _KLsignatureGVKe K35;
static _KLsimple_object_vectorGVKd_4 K36;
static _KLkeyword_signatureGVKe K37;
static _KLsimple_object_vectorGVKd_2 K38;
static _KLsymbolGVKd KJdfm_outputQ_;
static _KLbyte_stringGVKd_11 K40;
static _KLsimple_object_vectorGVKd_2 K41;
static _KLsimple_object_vectorGVKd_1 K42;

/* Indirection variables */

static dylan_value IKJtarget_triple_ = &KJtarget_triple_;
static dylan_value IKJdata_layout_ = &KJdata_layout_;
static dylan_value IKJbase_ = &KJbase_;
static dylan_value IKJinitQ_ = &KJinitQ_;
static dylan_value IKJdfm_outputQ_ = &KJdfm_outputQ_;

/* Variables */


/* Objects */

_KLkeyword_methodGVKe Kemit_allVdfmc_back_endMdfmc_llvm_back_endM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K37,
  &key_mep_4,
  &Kemit_allVdfmc_back_endMdfmc_llvm_back_endM0I,
  &K38
};

static _KLsimple_closure_methodGVKi_0 KUloopUF5 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_4,
  &K35,
  &KUloopUF5I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF34 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &K32,
  &KUhandler_functionUF34I,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 KUhandler_functionUF31 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &K32,
  &KUhandler_functionUF31I,
  (dylan_value) 1
};

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

static _KLbyte_stringGVKd_26 K12 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 105,
  "Restart the emission phase"
};

static _KLbyte_stringGVKd_24 K13 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 97,
  "Abort the emission phase"
};

static _KLsymbolGVKd KJtarget_triple_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K29
};

static _KLsymbolGVKd KJdata_layout_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K28
};

static _KLsymbolGVKd KJbase_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K27
};

static _KLbyte_stringGVKd_3 K17 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 13,
  "dfm"
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K18 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 196665,
  &KPfalseVKi,
  &cache_header_engine_4,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_codeVdfmc_llvm_back_end
};

static _KLsymbolGVKd KJinitQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K26
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K20 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 196665,
  &KPfalseVKi,
  &cache_header_engine_4,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_codeVdfmc_llvm_back_end
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K21 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 196665,
  &KPfalseVKi,
  &cache_header_engine_4,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kemit_codeVdfmc_llvm_back_end
};

_KLsimple_methodGVKe Kretract_local_methods_in_heapVdfmc_llvm_back_endMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K24,
  &Kretract_local_methods_in_heapVdfmc_llvm_back_endMM0I
};

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

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

static _KLbyte_stringGVKd_5 K26 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 21,
  "init?"
};

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

static _KLbyte_stringGVKd_11 K28 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 45,
  "data-layout"
};

static _KLbyte_stringGVKd_13 K29 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 53,
  "target-triple"
};

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

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

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

static _KLsimple_object_vectorGVKd_4 K36 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 17,
  &KLobjectGVKd,
  &KLobjectGVKd,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLkeyword_signatureGVKe K37 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (dylan_value) 45875209,
  &K41,
  &K42,
  &KDsignature_LobjectG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K38 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJdfm_outputQ_,
  &KPfalseVKi
};

static _KLsymbolGVKd KJdfm_outputQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K40
};

static _KLbyte_stringGVKd_11 K40 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 45,
  "dfm-output?"
};

static _KLsimple_object_vectorGVKd_2 K41 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLllvm_back_endGVdfmc_llvm_back_end,
  &KLcompilation_recordGVdfmc_common
};

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

/* Code */

dylan_value Kemit_allVdfmc_back_endMdfmc_llvm_back_endM0I (dylan_value back_end_, dylan_value cr_, dylan_value flags_, dylan_value dfm_outputQ_) {
  dylan_value T5;
  dylan_value T6;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:8
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  T5 = MAKE_CLOSURE(&KUloopUF5, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  INIT_CLOSURE(T5, 1, T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  get_teb()->function = T5;
  T6 = KUloopUF5I(dfm_outputQ_, flags_, cr_, back_end_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:8
  return(T6);
}

static dylan_value KUloopUF5I (dylan_value dfm_outputQ_, dylan_value flags_, dylan_value cr_, dylan_value back_end_) {
  volatile dylan_value Uunwind_exceptionUPexit_0_;
  volatile dylan_value T5;
  volatile dylan_value Uoriginal_handlersUF6;
  volatile dylan_value T7;
  volatile dylan_value T8;
  volatile dylan_value T9;
  volatile dylan_value Uunwind_exceptionUPexit_1_;
  volatile dylan_value T11;
  volatile dylan_value Uoriginal_handlersUF12;
  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 m_;
  volatile dylan_value T20;
  volatile dylan_value literals_;
  volatile dylan_value T22;
  volatile dylan_value T23;
  volatile dylan_value T24;
  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 T31T, T31;
  volatile dylan_value T32;
  volatile dylan_value T33;
  volatile dylan_value T34;
  volatile dylan_value Pold_valueP_;
  volatile dylan_value T36;
  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 dylan_value T45T, T45;
  volatile dylan_value T46;
  volatile dylan_value T47;
  volatile dylan_value T48;
  volatile dylan_value T49;
  volatile dylan_value T50;
  volatile dylan_value T51;
  volatile dylan_value T52;
  volatile dylan_value T53;
  volatile dylan_value T54;
  volatile dylan_value T55;
  volatile dylan_value T56;
  volatile dylan_value T57T, T57;
  volatile dylan_value T58;
  volatile dylan_value T59;
  volatile dylan_value T60;
  volatile dylan_value T61;
  volatile dylan_value T62;
  volatile dylan_value T63;
  volatile dylan_value T64;
  volatile _KLsimple_object_vectorGVKd_2 T65 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  volatile dylan_value T66;
  volatile _KLsimple_object_vectorGVKd_8 T67 = {&KLsimple_object_vectorGVKdW, (dylan_value) 33};
  volatile dylan_value T68_0;
  volatile dylan_value T69;
  volatile dylan_value T70;
  volatile _KLsimple_object_vectorGVKd_2 T71 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  volatile dylan_value T72;
  volatile _KLsimple_object_vectorGVKd_8 T73 = {&KLsimple_object_vectorGVKdW, (dylan_value) 33};
  volatile dylan_value T74_0;
  volatile dylan_value T75;
  volatile dylan_value T76;
  volatile _KLsimple_object_vectorGVKd_6 T77 = {&KLsimple_object_vectorGVKdW, (dylan_value) 25};
  volatile dylan_value T78;
  volatile _KLsimple_object_vectorGVKd_2 T79 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  volatile _KLsimple_object_vectorGVKd_2 T80 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  volatile dylan_value T81;
  volatile dylan_value T82;
  volatile dylan_value T83;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  ENTER_EXIT_FRAME(Uunwind_exceptionUPexit_0_);
  if (nlx_setjmp(FRAME_DEST(Uunwind_exceptionUPexit_0_))) {
    T64 = FRAME_RETVAL(Uunwind_exceptionUPexit_0_);
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    Uoriginal_handlersUF6 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T7 = MAKE_CLOSURE(&KUhandler_functionUF34, 7);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    INIT_CLOSURE(T7, 7, CREF(0), dfm_outputQ_, flags_, cr_, back_end_, Uoriginal_handlersUF6, Uunwind_exceptionUPexit_0_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T65.vector_element_[0] = &KJformat_string_;
    T65.vector_element_[1] = &K12;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T66 = primitive_copy_vector(&T65);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T67.vector_element_[0] = &KJtype_;
    T67.vector_element_[1] = &KLsimple_restartGVKd;
    T67.vector_element_[2] = &KJfunction_;
    T67.vector_element_[3] = T7;
    T67.vector_element_[4] = &KJtest_;
    T67.vector_element_[5] = &KPfalseVKi;
    T67.vector_element_[6] = &KJinit_arguments_;
    T67.vector_element_[7] = T66;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T68_0 = KLhandlerGZ32ZconstructorVKiMM0I(&KLhandlerGVKi, &T67, &KLsimple_restartGVKd, T7, &KPfalseVKi, T66);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T69 = T68_0;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T8 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    T70 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    SLOT_VALUE_SETTER(T69, T70, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    SLOT_VALUE_SETTER(T8, T70, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    primitive_write_thread_variable(Tcurrent_handlersTVKi, T70);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    ENTER_UNWIND_FRAME(T9);
    if (!nlx_setjmp(FRAME_DEST(T9))) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
      ENTER_EXIT_FRAME(Uunwind_exceptionUPexit_1_);
      if (nlx_setjmp(FRAME_DEST(Uunwind_exceptionUPexit_1_))) {
            T63 = FRAME_RETVAL(Uunwind_exceptionUPexit_1_);
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        Uoriginal_handlersUF12 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T13 = MAKE_CLOSURE_INITD(&KUhandler_functionUF31, 2, Uoriginal_handlersUF12, Uunwind_exceptionUPexit_1_);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T71.vector_element_[0] = &KJformat_string_;
        T71.vector_element_[1] = &K13;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T72 = primitive_copy_vector(&T71);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T73.vector_element_[0] = &KJtype_;
        T73.vector_element_[1] = &KLsimple_restartGVKd;
        T73.vector_element_[2] = &KJfunction_;
        T73.vector_element_[3] = T13;
        T73.vector_element_[4] = &KJtest_;
        T73.vector_element_[5] = &KPfalseVKi;
        T73.vector_element_[6] = &KJinit_arguments_;
        T73.vector_element_[7] = T72;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T74_0 = KLhandlerGZ32ZconstructorVKiMM0I(&KLhandlerGVKi, &T73, &KLsimple_restartGVKd, T13, &KPfalseVKi, T72);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T75 = T74_0;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T14 = primitive_read_thread_variable(Tcurrent_handlersTVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        T76 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        SLOT_VALUE_SETTER(T75, T76, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        SLOT_VALUE_SETTER(T14, T76, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        primitive_write_thread_variable(Tcurrent_handlersTVKi, T76);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        ENTER_UNWIND_FRAME(T15);
        if (!nlx_setjmp(FRAME_DEST(T15))) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:16
          CONGRUENT_CALL_PROLOG(&Kcompilation_record_nameVdfmc_common, 1);
          T16 = CONGRUENT_CALL1(cr_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:17
          CONGRUENT_CALL_PROLOG(&Kllvm_back_end_target_tripleVdfmc_llvm_back_end, 1);
          T17 = CONGRUENT_CALL1(back_end_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:18
          CONGRUENT_CALL_PROLOG(&Kllvm_back_end_data_layoutVdfmc_llvm_back_end, 1);
          T18 = CONGRUENT_CALL1(back_end_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:15
          T77.vector_element_[0] = &KJname_;
          T77.vector_element_[1] = T16;
          T77.vector_element_[2] = IKJtarget_triple_;
          T77.vector_element_[3] = T17;
          T77.vector_element_[4] = IKJdata_layout_;
          T77.vector_element_[5] = T18;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:15
          CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
          m_ = CONGRUENT_CALL2(&KLllvm_moduleGVllvm, &T77);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:21
          ENTER_UNWIND_FRAME(T20);
          if (!nlx_setjmp(FRAME_DEST(T20))) {
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:23
            SLOT_VALUE_SETTER(m_, back_end_, 1);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:22
            Kcompilation_record_back_end_data_setterVdfmc_commonMM0I(m_, cr_);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:27
            Kllvm_register_typesVdfmc_llvm_back_endMM0I(back_end_, m_);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:30
            T78 = SLOT_VALUE_INITD(cr_, 4);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:31
            literals_ = CALL1(&Kheap_defined_object_sequenceVdfmc_back_end, T78);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:34
            if (dfm_outputQ_ != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:35
              T22 = MAKE_CLOSURE_INITD(&Kanonymous_of_emit_allF30, 4, flags_, back_end_, T78, literals_);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:35
              CONGRUENT_CALL_PROLOG(&Kcurrent_library_descriptionVdfmc_common, 0);
              T23 = CONGRUENT_CALL0();
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:36
              CONGRUENT_CALL_PROLOG(&Kcompilation_record_nameVdfmc_common, 1);
              T24 = CONGRUENT_CALL1(cr_);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:35
              CALL6(&Kcall_with_build_area_outputVdfmc_namespace, T22, T23, IKJbase_, T24, &KJtype_, &K17);
            }
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:34
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            T25 = CALL1(&Kforward_iteration_protocolVKd, literals_);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            T26 = T25;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            T27 = MV_GET_ELT(1);
;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            T28 = MV_GET_ELT(2);
;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            T29 = MV_GET_ELT(3);
;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            T30 = MV_GET_ELT(5);
;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            T31T = T26;
          L0: ;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
              T31 = T31T;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
              T32 = CALL3(T29, literals_, T31, T27);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
              if (T32 == &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
                T33 = CALL2(T30, literals_, T31);
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:52
                ENGINE_NODE_CALL_PROLOG(&Kemit_codeVdfmc_llvm_back_end, &K18, 4);
                ENGINE_NODE_CALL4(&K18, back_end_, m_, T33, &KPempty_vectorVKi);
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
                T34 = CALL2(T28, literals_, T31);
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
                T31T = T34;
                goto L0;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:51
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:55
            Pold_valueP_ = primitive_read_thread_variable(Tinit_labeling_stateTVdfmc_back_end);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:55
            ENTER_UNWIND_FRAME(T36);
            if (!nlx_setjmp(FRAME_DEST(T36))) {
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:55
              CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
              T37 = CONGRUENT_CALL2(&KLlabeling_stateGVdfmc_back_end, &KPempty_vectorVKi);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:55
              primitive_write_thread_variable(Tinit_labeling_stateTVdfmc_back_end, T37);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T38 = CALL1(&Kheap_root_system_init_codeVdfmc_back_end, T78);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T39 = CALL1(&Kforward_iteration_protocolVKd, T38);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T40 = T39;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T41 = MV_GET_ELT(1);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T42 = MV_GET_ELT(2);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T43 = MV_GET_ELT(3);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T44 = MV_GET_ELT(5);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              T45T = T40;
            L1: ;
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
                T45 = T45T;
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
                T46 = CALL3(T43, T38, T45, T41);
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
                if (T46 == &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
                  T47 = CALL2(T44, T38, T45);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:57
                  CONGRUENT_CALL_PROLOG(&KCiepVdfmc_modeling, 1);
                  T48 = CONGRUENT_CALL1(T47);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:57
                  T79.vector_element_[0] = IKJinitQ_;
                  T79.vector_element_[1] = &KPtrueVKi;
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:57
                  ENGINE_NODE_CALL_PROLOG(&Kemit_codeVdfmc_llvm_back_end, &K20, 4);
                  ENGINE_NODE_CALL4(&K20, back_end_, m_, T48, &T79);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
                  T49 = CALL2(T42, T38, T45);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
                  T45T = T49;
                  goto L1;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:56
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T50 = CALL1(&Kheap_root_init_codeVdfmc_back_end, T78);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T51 = CALL1(&Kforward_iteration_protocolVKd, T50);
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T52 = T51;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T53 = MV_GET_ELT(1);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T54 = MV_GET_ELT(2);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T55 = MV_GET_ELT(3);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T56 = MV_GET_ELT(5);
;
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              T57T = T52;
            L2: ;
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
                T57 = T57T;
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
                T58 = CALL3(T55, T50, T57, T53);
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
                if (T58 == &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
                  T59 = CALL2(T56, T50, T57);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:60
                  CONGRUENT_CALL_PROLOG(&KCiepVdfmc_modeling, 1);
                  T60 = CONGRUENT_CALL1(T59);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:60
                  T80.vector_element_[0] = IKJinitQ_;
                  T80.vector_element_[1] = &KPtrueVKi;
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:60
                  ENGINE_NODE_CALL_PROLOG(&Kemit_codeVdfmc_llvm_back_end, &K21, 4);
                  ENGINE_NODE_CALL4(&K21, back_end_, m_, T60, &T80);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
                  T61 = CALL2(T54, T50, T57);
                  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
                  T57T = T61;
                  goto L2;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
                // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:59
              // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:55
              FALL_THROUGH_UNWIND(&KPfalseVKi);
            }
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:55
            primitive_write_thread_variable(Tinit_labeling_stateTVdfmc_back_end, Pold_valueP_);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:55
            CONTINUE_UNWIND();
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:64
            Kllvm_compilation_record_dbg_compile_unitVdfmc_llvm_back_endMM0I(back_end_, cr_);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:66
            T62 = CALL1(&Kretract_local_methods_in_heapVdfmc_llvm_back_endMM0, T78);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:21
            FALL_THROUGH_UNWIND(T62);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:68
          T81 = SLOT_VALUE_INITD(back_end_, 17);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:68
          Kremove_all_keysXVKeMM0I(T81);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:69
          T82 = SLOT_VALUE_INITD(back_end_, 15);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:69
          Kremove_all_keysXVKeMM0I(T82);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:70
          T83 = SLOT_VALUE_INITD(back_end_, 16);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:70
          Ksize_setterVKdMM1I((dylan_value) 1, T83);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:71
          SLOT_VALUE_SETTER(&KPfalseVKi, back_end_, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:21
          CONTINUE_UNWIND();
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
          FALL_THROUGH_UNWIND(T62);
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        primitive_write_thread_variable(Tcurrent_handlersTVKi, Uoriginal_handlersUF12);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
        CONTINUE_UNWIND();
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
      T63 = T62;
        /* invalidate Uunwind_exceptionUPexit_1_ */
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
      FALL_THROUGH_UNWIND(T63);
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    primitive_write_thread_variable(Tcurrent_handlersTVKi, Uoriginal_handlersUF6);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
    CONTINUE_UNWIND();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  T64 = T63;
    /* invalidate Uunwind_exceptionUPexit_0_ */
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  return(T64);
}

static dylan_value KUhandler_functionUF34I (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/llvm-back-end/llvm-emit.dylan:12
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  primitive_write_thread_variable(Tcurrent_handlersTVKi, CREF(5));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  get_teb()->function = CREF(0);
  T3 = KUloopUF5I(CREF(1), CREF(2), CREF(3), CREF(4));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  all_values_ = MV_GET_REST_AT(T3, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  T5 = MV_SET_REST_AT(all_values_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  T6 = NLX(CREF(6), T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  return(T6);
}

static dylan_value KUhandler_functionUF31I (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/llvm-back-end/llvm-emit.dylan:12
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  primitive_write_thread_variable(Tcurrent_handlersTVKi, CREF(0));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  T3 = &KPfalseVKi;
  MV_SET_ELT(0, &KPfalseVKi);
  MV_SET_COUNT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  all_values_ = MV_GET_REST_AT(T3, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  T5 = MV_SET_REST_AT(all_values_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  T6 = NLX(CREF(1), T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:12
  return(T6);
}

static dylan_value Kanonymous_of_emit_allF30I (dylan_value stream_) {
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7T, T7;
  dylan_value T8;
  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 T18T, T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28;
  dylan_value T29;
  dylan_value T30T, T30;
  dylan_value T31;
  dylan_value T32;
  dylan_value T33;
  dylan_value T34;
  dylan_value T35;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:35
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  T1 = CALL1(&Kforward_iteration_protocolVKd, CREF(3));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  T2 = T1;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  T3 = MV_GET_ELT(1);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  T4 = MV_GET_ELT(2);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  T5 = MV_GET_ELT(3);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  T6 = MV_GET_ELT(5);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  T7T = T2;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
    T7 = T7T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
    T8 = CALL3(T5, CREF(3), T7, T3);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
    if (T8 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
      T9 = CALL2(T6, CREF(3), T7);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:39
      APPLY4(&Kemit_dfmVdfmc_back_end, CREF(1), stream_, T9, CREF(0));
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
      T10 = CALL2(T4, CREF(3), T7);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
      T7T = T10;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:38
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T11 = CALL1(&Kheap_root_system_init_codeVdfmc_back_end, CREF(2));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T12 = CALL1(&Kforward_iteration_protocolVKd, T11);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T13 = T12;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T14 = MV_GET_ELT(1);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T15 = MV_GET_ELT(2);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T16 = MV_GET_ELT(3);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T17 = MV_GET_ELT(5);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  T18T = T13;
L1: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
    T18 = T18T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
    T19 = CALL3(T16, T11, T18, T14);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
    if (T19 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
      T20 = CALL2(T17, T11, T18);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:42
      CONGRUENT_CALL_PROLOG(&KCiepVdfmc_modeling, 1);
      T21 = CONGRUENT_CALL1(T20);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:42
      APPLY4(&Kemit_dfmVdfmc_back_end, CREF(1), stream_, T21, CREF(0));
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
      T22 = CALL2(T15, T11, T18);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
      T18T = T22;
      goto L1;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:41
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T23 = CALL1(&Kheap_root_init_codeVdfmc_back_end, CREF(2));
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T24 = CALL1(&Kforward_iteration_protocolVKd, T23);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T25 = T24;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T26 = MV_GET_ELT(1);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T27 = MV_GET_ELT(2);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T28 = MV_GET_ELT(3);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T29 = MV_GET_ELT(5);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  T30T = T25;
L2: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
    T30 = T30T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
    T31 = CALL3(T28, T23, T30, T26);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
    if (T31 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
      T32 = CALL2(T29, T23, T30);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:45
      CONGRUENT_CALL_PROLOG(&KCiepVdfmc_modeling, 1);
      T33 = CONGRUENT_CALL1(T32);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:45
      APPLY4(&Kemit_dfmVdfmc_back_end, CREF(1), stream_, T33, CREF(0));
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
      T34 = CALL2(T27, T23, T30);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
      T30T = T34;
      goto L2;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
    T35 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:44
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:35
  return(T35);
}

dylan_value Kretract_local_methods_in_heapVdfmc_llvm_back_endMM0I (dylan_value heap_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9T, 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 Utmp_;
  dylan_value T20;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:76
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T2 = Kheap_defined_object_sequenceVdfmc_back_endI(heap_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T3 = CALL1(&Kforward_iteration_protocolVKd, T2);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T4 = T3;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T5 = MV_GET_ELT(1);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T6 = MV_GET_ELT(2);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T7 = MV_GET_ELT(3);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T8 = MV_GET_ELT(5);
;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  T9T = T4;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
    T9 = T9T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
    T10 = CALL3(T7, T2, T9, T5);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
    if (T10 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
      T11 = CALL2(T8, T2, T9);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:78
      T18 = primitive_instanceQ(T11,&KLBiepGVdfmc_modeling);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:78
      if (T18 != &KPfalseVKi) {
        T17 = T11;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:79
        Utmp_ = Klambda_top_levelQVdfmc_modelingMM2I(T17);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:79
        if (Utmp_ != &KPfalseVKi) {
          T13 = Utmp_;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:79
          T12 = Tretract_dfmQTVdfmc_back_end;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:79
          T20 = primitive_not(T12);
          T13 = T20;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:79
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:79
        if (T13 == &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:80
          Kretract_method_dfmVdfmc_conversionMM0I(T17);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:81
          CONGRUENT_CALL_PROLOG(&KfunctionVdfmc_modeling, 1);
          T14 = CONGRUENT_CALL1(T17);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:81
          CONGRUENT_CALL_PROLOG(&Kretract_method_dfmVdfmc_conversion, 1);
          CONGRUENT_CALL1(T14);
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:79
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:78
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
      T15 = CALL2(T6, T2, T9);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
      T9T = T15;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
    T16 = &KPfalseVKi;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:77
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:76
  MV_SET_COUNT(0);
  return(T16);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJtarget_triple_);
    if (T0 != &KJtarget_triple_) {
      IKJtarget_triple_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJdata_layout_);
    if (T0 != &KJdata_layout_) {
      IKJdata_layout_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJbase_);
    if (T0 != &KJbase_) {
      IKJbase_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJinitQ_);
    if (T0 != &KJinitQ_) {
      IKJinitQ_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJdfm_outputQ_);
    if (T0 != &KJdfm_outputQ_) {
      primitive_repeated_slot_value_setter(T0, &K42, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K38, 1, 0);
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dfmc_llvm_back_end__X_llvm_emit_for_user () {
{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/llvm-back-end/llvm-emit.dylan:8
  T0 = KPadd_a_methodVKnI(&Kemit_allVdfmc_back_end, &Kemit_allVdfmc_back_endMdfmc_llvm_back_endM0, &Kdfmc_llvm_back_end_libraryYdylan_userVdfmc_llvm_back_end, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I2;
}
I2:

  return;
}


/* eof */
