#include <OOC/X86/SSA.oh>
#include <OOC/SymbolTable/TypeRules.oh>
#define OOC_X86_SSA__opcodeArithmetic 0
#define OOC_X86_SSA__opcodeFunctionFraming 26
#define OOC_X86_SSA__opcodeMemory 34
#define OOC_X86_SSA__opcodeControlFlow 46
#define OOC_X86_SSA__anySet 7
static void OOC_X86_SSA__SetUse(OOC_X86_SSA__Result arg, OOC_X86_SSA__Opnd opnd);
static void OOC_X86_SSA__DeleteUse(OOC_X86_SSA__Opnd opnd);
static void OOC_X86_SSA__AddOpnd(OOC_X86_SSA__Instr instr, OOC_X86_SSA__Opnd opnd);

/* run-time meta data */
static RT0__ModuleDesc _mid;
RT0__StructDesc _td_OOC_X86_SSA__Node = { (RT0__Struct[]){&_td_OOC_X86_SSA__NodeDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Node", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__Opnd = { (RT0__Struct[]){&_td_OOC_X86_SSA__OpndDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Opnd", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__Result = { (RT0__Struct[]){&_td_OOC_X86_SSA__ResultDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Result", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__Instr = { (RT0__Struct[]){&_td_OOC_X86_SSA__InstrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Instr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__Block = { (RT0__Struct[]){&_td_OOC_X86_SSA__BlockDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Block", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__Selector = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Selector", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__11820 = { (RT0__Struct[]){&_td_OOC_X86_SSA__Selector}, NULL, NULL, &_mid, NULL, 4, 1, 0, RT0__strOpenArray };
RT0__StructDesc _td_OOC_X86_SSA__Designator = { (RT0__Struct[]){&_td_OOC_X86_SSA__11820}, NULL, NULL, &_mid, (OOC_CHAR8*)"Designator", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__SelectorDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc}, (void*[]){(void*)OOC_X86_SSA__SelectorDesc_INIT,(void*)OOC_X86_SSA__SelectorDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"SelectorDesc", 0, 0, (1<<RT0__flagAtomic), RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__Global = { (RT0__Struct[]){&_td_OOC_X86_SSA__GlobalDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Global", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__GlobalDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__GlobalDesc}, (void*[]){(void*)OOC_X86_SSA__SelectorDesc_INIT,(void*)OOC_X86_SSA__SelectorDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"GlobalDesc", 0, 1, (1<<RT0__flagAtomic), RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__Var = { (RT0__Struct[]){&_td_OOC_X86_SSA__VarDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Var", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__VarDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__GlobalDesc,&_td_OOC_X86_SSA__VarDesc}, (void*[]){(void*)OOC_X86_SSA__VarDesc_INIT,(void*)OOC_X86_SSA__VarDesc_SameSelector,(void*)OOC_X86_SSA__VarDesc_Type,(void*)OOC_X86_SSA__VarDesc_IsGlobalVar}, NULL, &_mid, (OOC_CHAR8*)"VarDesc", 8, 2, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__Proc = { (RT0__Struct[]){&_td_OOC_X86_SSA__ProcDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Proc", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__ProcDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__GlobalDesc,&_td_OOC_X86_SSA__ProcDesc}, (void*[]){(void*)OOC_X86_SSA__ProcDesc_INIT,(void*)OOC_X86_SSA__ProcDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"ProcDesc", 4, 2, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__ProcName = { (RT0__Struct[]){&_td_OOC_X86_SSA__ProcNameDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ProcName", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__ProcNameDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__GlobalDesc,&_td_OOC_X86_SSA__ProcNameDesc}, (void*[]){(void*)OOC_X86_SSA__ProcNameDesc_INIT,(void*)OOC_X86_SSA__ProcNameDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"ProcNameDesc", 4, 2, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__TypeDescr = { (RT0__Struct[]){&_td_OOC_X86_SSA__TypeDescrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"TypeDescr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__TypeDescrDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__GlobalDesc,&_td_OOC_X86_SSA__TypeDescrDesc}, (void*[]){(void*)OOC_X86_SSA__TypeDescrDesc_INIT,(void*)OOC_X86_SSA__TypeDescrDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"TypeDescrDesc", 4, 2, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__ModuleDescr = { (RT0__Struct[]){&_td_OOC_X86_SSA__ModuleDescrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ModuleDescr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__ModuleDescrDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__GlobalDesc,&_td_OOC_X86_SSA__ModuleDescrDesc}, (void*[]){(void*)OOC_X86_SSA__ModuleDescrDesc_INIT,(void*)OOC_X86_SSA__ModuleDescrDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"ModuleDescrDesc", 0, 2, (1<<RT0__flagAtomic), RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__Const = { (RT0__Struct[]){&_td_OOC_X86_SSA__ConstDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Const", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__ConstDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__ConstDesc}, (void*[]){(void*)OOC_X86_SSA__ConstDesc_INIT,(void*)OOC_X86_SSA__ConstDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"ConstDesc", 8, 1, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__HeapObj = { (RT0__Struct[]){&_td_OOC_X86_SSA__HeapObjDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"HeapObj", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__HeapObjDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__HeapObjDesc}, (void*[]){(void*)OOC_X86_SSA__HeapObjDesc_INIT,(void*)OOC_X86_SSA__HeapObjDesc_SameSelector,(void*)OOC_X86_SSA__HeapObjDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"HeapObjDesc", 8, 1, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__Index = { (RT0__Struct[]){&_td_OOC_X86_SSA__IndexDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Index", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IndexDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__IndexDesc}, (void*[]){(void*)OOC_X86_SSA__IndexDesc_INIT,(void*)OOC_X86_SSA__IndexDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"IndexDesc", 4, 1, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__Field = { (RT0__Struct[]){&_td_OOC_X86_SSA__FieldDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Field", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__FieldDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__SelectorDesc,&_td_OOC_X86_SSA__FieldDesc}, (void*[]){(void*)OOC_X86_SSA__FieldDesc_INIT,(void*)OOC_X86_SSA__FieldDesc_SameSelector,(void*)OOC_X86_SSA__SelectorDesc_Type}, NULL, &_mid, (OOC_CHAR8*)"FieldDesc", 4, 1, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__NodeDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__NodeDesc_INIT}, NULL, &_mid, (OOC_CHAR8*)"NodeDesc", 0, 2, (1<<RT0__flagAtomic), RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__OpndDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__OpndDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__OpndDesc_INIT,(void*)OOC_X86_SSA__OpndDesc_DeleteOpnd,(void*)OOC_X86_SSA__OpndDesc_ReplaceArg,(void*)OOC_X86_SSA__OpndDesc_OpndIndex,(void*)OOC_X86_SSA__OpndDesc_IsBackedgeOpnd,(void*)OOC_X86_SSA__OpndDesc_IsConst,(void*)OOC_X86_SSA__OpndDesc_InsertCopy}, NULL, &_mid, (OOC_CHAR8*)"OpndDesc", 20, 3, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__ResultDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__ResultDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__ResultDesc_INIT,(void*)OOC_X86_SSA__ResultDesc_SetType,(void*)OOC_X86_SSA__ResultDesc_NonImmediateUses,(void*)OOC_X86_SSA__ResultDesc_SameLocation,(void*)OOC_X86_SSA__ResultDesc_DeleteResult,(void*)OOC_X86_SSA__ResultDesc_ReplaceUses,(void*)OOC_X86_SSA__ResultDesc_ReplaceUsesExcept,(void*)OOC_X86_SSA__ResultDesc_CalledProc,(void*)OOC_X86_SSA__ResultDesc_IsFalse,(void*)OOC_X86_SSA__ResultDesc_IsTrue,(void*)OOC_X86_SSA__ResultDesc_IsFloat,(void*)OOC_X86_SSA__ResultDesc_GetConst,(void*)OOC_X86_SSA__ResultDesc_Uses}, NULL, &_mid, (OOC_CHAR8*)"ResultDesc", 28, 3, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterResultUses = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterResultUsesDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterResultUses", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterResultUsesDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterResultUsesDesc}, (void*[]){(void*)OOC_X86_SSA__IterResultUsesDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterResultUsesDesc", 4, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__Dep = { (RT0__Struct[]){&_td_OOC_X86_SSA__DepDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"Dep", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__DepDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__DepDesc}, (void*[]){(void*)OOC_X86_SSA__DepDesc_INIT,(void*)OOC_X86_SSA__DepDesc_DeleteDep}, NULL, &_mid, (OOC_CHAR8*)"DepDesc", 20, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__InstrDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__InstrDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete}, NULL, &_mid, (OOC_CHAR8*)"InstrDesc", 48, 3, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterOperands = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterOperandsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterOperands", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterOperandsDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterOperandsDesc}, (void*[]){(void*)OOC_X86_SSA__IterOperandsDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterOperandsDesc", 0, 0, (1<<RT0__flagAtomic), RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrOperands = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterInstrOperandsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterInstrOperands", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrOperandsDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterOperandsDesc,&_td_OOC_X86_SSA__IterInstrOperandsDesc}, (void*[]){(void*)OOC_X86_SSA__IterInstrOperandsDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterInstrOperandsDesc", 4, 1, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrResults = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterInstrResultsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterInstrResults", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrResultsDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterInstrResultsDesc}, (void*[]){(void*)OOC_X86_SSA__IterInstrResultsDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterInstrResultsDesc", 4, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterJumpGateOperands = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterJumpGateOperandsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterJumpGateOperands", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterJumpGateOperandsDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterOperandsDesc,&_td_OOC_X86_SSA__IterJumpGateOperandsDesc}, (void*[]){(void*)OOC_X86_SSA__IterJumpGateOperandsDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterJumpGateOperandsDesc", 8, 1, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrBeforeList = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterInstrBeforeListDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterInstrBeforeList", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrBeforeListDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterInstrBeforeListDesc}, (void*[]){(void*)OOC_X86_SSA__IterInstrBeforeListDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterInstrBeforeListDesc", 8, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrAfterList = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterInstrAfterListDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterInstrAfterList", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterInstrAfterListDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterInstrAfterListDesc}, (void*[]){(void*)OOC_X86_SSA__IterInstrAfterListDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterInstrAfterListDesc", 8, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__BlockDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__BlockDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__BlockDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete,(void*)OOC_X86_SSA__BlockDesc_Add,(void*)OOC_X86_SSA__BlockDesc_AddInFront,(void*)OOC_X86_SSA__BlockDesc_MoveBehind,(void*)OOC_X86_SSA__BlockDesc_Remove,(void*)OOC_X86_SSA__BlockDesc_RemoveAll,(void*)OOC_X86_SSA__BlockDesc_NestingDepth,(void*)OOC_X86_SSA__BlockDesc_Dominates,(void*)OOC_X86_SSA__BlockDesc_Count,(void*)OOC_X86_SSA__BlockDesc_Instructions,(void*)OOC_X86_SSA__BlockDesc_AllInstructions,(void*)OOC_X86_SSA__BlockDesc_AddInstr0,(void*)OOC_X86_SSA__BlockDesc_AddInstr1,(void*)OOC_X86_SSA__BlockDesc_AddInstr2,(void*)OOC_X86_SSA__BlockDesc_AddInstr3,(void*)OOC_X86_SSA__BlockDesc_AddBlock0,(void*)OOC_X86_SSA__BlockDesc_AddBlock1,(void*)OOC_X86_SSA__BlockDesc_AddConstType,(void*)OOC_X86_SSA__BlockDesc_AddConst,(void*)OOC_X86_SSA__BlockDesc_AddConstBool,(void*)OOC_X86_SSA__BlockDesc_AddConstInt,(void*)OOC_X86_SSA__BlockDesc_AddConstReal,(void*)OOC_X86_SSA__BlockDesc_AddConstZero,(void*)OOC_X86_SSA__BlockDesc_AddConstDim,(void*)OOC_X86_SSA__BlockDesc_AddConstLength,(void*)OOC_X86_SSA__BlockDesc_AddAdr,(void*)OOC_X86_SSA__BlockDesc_AddAdrRT,(void*)OOC_X86_SSA__BlockDesc_AddAdrTypeDescr,(void*)OOC_X86_SSA__BlockDesc_AddAdrModuleDescr,(void*)OOC_X86_SSA__BlockDesc_AddFramePointerOffset,(void*)OOC_X86_SSA__BlockDesc_AddLoadRegister,(void*)OOC_X86_SSA__BlockDesc_AddBranch,(void*)OOC_X86_SSA__BlockDesc_AddMerge,(void*)OOC_X86_SSA__BlockDesc_AddMerge0,(void*)OOC_X86_SSA__BlockDesc_AddMerge2,(void*)OOC_X86_SSA__BlockDesc_AddGate,(void*)OOC_X86_SSA__BlockDesc_AddLoopStart,(void*)OOC_X86_SSA__BlockDesc_AddLoopBackedge,(void*)OOC_X86_SSA__BlockDesc_AddExit,(void*)OOC_X86_SSA__BlockDesc_SetMarkers}, NULL, &_mid, (OOC_CHAR8*)"BlockDesc", 56, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterBlockInstructions = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterBlockInstructionsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterBlockInstructions", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterBlockInstructionsDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterBlockInstructionsDesc}, (void*[]){(void*)OOC_X86_SSA__IterBlockInstructionsDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterBlockInstructionsDesc", 4, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__IterBlockAllInstructions = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterBlockAllInstructionsDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"IterBlockAllInstructions", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__IterBlockAllInstructionsDesc = { (RT0__Struct[]){&_td_OOC_X86_SSA__IterBlockAllInstructionsDesc}, (void*[]){(void*)OOC_X86_SSA__IterBlockAllInstructionsDesc_Next}, NULL, &_mid, (OOC_CHAR8*)"IterBlockAllInstructionsDesc", 12, 0, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__BranchInstr = { (RT0__Struct[]){&_td_OOC_X86_SSA__BranchInstrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"BranchInstr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__MergeInstr = { (RT0__Struct[]){&_td_OOC_X86_SSA__MergeInstrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"MergeInstr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__BranchInstrDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__BlockDesc,&_td_OOC_X86_SSA__BranchInstrDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__BranchInstrDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete,(void*)OOC_X86_SSA__BlockDesc_Add,(void*)OOC_X86_SSA__BlockDesc_AddInFront,(void*)OOC_X86_SSA__BlockDesc_MoveBehind,(void*)OOC_X86_SSA__BlockDesc_Remove,(void*)OOC_X86_SSA__BlockDesc_RemoveAll,(void*)OOC_X86_SSA__BlockDesc_NestingDepth,(void*)OOC_X86_SSA__BlockDesc_Dominates,(void*)OOC_X86_SSA__BlockDesc_Count,(void*)OOC_X86_SSA__BlockDesc_Instructions,(void*)OOC_X86_SSA__BlockDesc_AllInstructions,(void*)OOC_X86_SSA__BlockDesc_AddInstr0,(void*)OOC_X86_SSA__BlockDesc_AddInstr1,(void*)OOC_X86_SSA__BlockDesc_AddInstr2,(void*)OOC_X86_SSA__BlockDesc_AddInstr3,(void*)OOC_X86_SSA__BlockDesc_AddBlock0,(void*)OOC_X86_SSA__BlockDesc_AddBlock1,(void*)OOC_X86_SSA__BlockDesc_AddConstType,(void*)OOC_X86_SSA__BlockDesc_AddConst,(void*)OOC_X86_SSA__BlockDesc_AddConstBool,(void*)OOC_X86_SSA__BlockDesc_AddConstInt,(void*)OOC_X86_SSA__BlockDesc_AddConstReal,(void*)OOC_X86_SSA__BlockDesc_AddConstZero,(void*)OOC_X86_SSA__BlockDesc_AddConstDim,(void*)OOC_X86_SSA__BlockDesc_AddConstLength,(void*)OOC_X86_SSA__BlockDesc_AddAdr,(void*)OOC_X86_SSA__BlockDesc_AddAdrRT,(void*)OOC_X86_SSA__BlockDesc_AddAdrTypeDescr,(void*)OOC_X86_SSA__BlockDesc_AddAdrModuleDescr,(void*)OOC_X86_SSA__BlockDesc_AddFramePointerOffset,(void*)OOC_X86_SSA__BlockDesc_AddLoadRegister,(void*)OOC_X86_SSA__BlockDesc_AddBranch,(void*)OOC_X86_SSA__BlockDesc_AddMerge,(void*)OOC_X86_SSA__BlockDesc_AddMerge0,(void*)OOC_X86_SSA__BlockDesc_AddMerge2,(void*)OOC_X86_SSA__BlockDesc_AddGate,(void*)OOC_X86_SSA__BlockDesc_AddLoopStart,(void*)OOC_X86_SSA__BlockDesc_AddLoopBackedge,(void*)OOC_X86_SSA__BlockDesc_AddExit,(void*)OOC_X86_SSA__BlockDesc_SetMarkers,(void*)OOC_X86_SSA__BranchInstrDesc_SetPaths,(void*)OOC_X86_SSA__BranchInstrDesc_SetPaths2}, NULL, &_mid, (OOC_CHAR8*)"BranchInstrDesc", 64, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__MergeInstrDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__BlockDesc,&_td_OOC_X86_SSA__MergeInstrDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__MergeInstrDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete,(void*)OOC_X86_SSA__BlockDesc_Add,(void*)OOC_X86_SSA__BlockDesc_AddInFront,(void*)OOC_X86_SSA__BlockDesc_MoveBehind,(void*)OOC_X86_SSA__BlockDesc_Remove,(void*)OOC_X86_SSA__BlockDesc_RemoveAll,(void*)OOC_X86_SSA__BlockDesc_NestingDepth,(void*)OOC_X86_SSA__BlockDesc_Dominates,(void*)OOC_X86_SSA__BlockDesc_Count,(void*)OOC_X86_SSA__BlockDesc_Instructions,(void*)OOC_X86_SSA__BlockDesc_AllInstructions,(void*)OOC_X86_SSA__BlockDesc_AddInstr0,(void*)OOC_X86_SSA__BlockDesc_AddInstr1,(void*)OOC_X86_SSA__BlockDesc_AddInstr2,(void*)OOC_X86_SSA__BlockDesc_AddInstr3,(void*)OOC_X86_SSA__BlockDesc_AddBlock0,(void*)OOC_X86_SSA__BlockDesc_AddBlock1,(void*)OOC_X86_SSA__BlockDesc_AddConstType,(void*)OOC_X86_SSA__BlockDesc_AddConst,(void*)OOC_X86_SSA__BlockDesc_AddConstBool,(void*)OOC_X86_SSA__BlockDesc_AddConstInt,(void*)OOC_X86_SSA__BlockDesc_AddConstReal,(void*)OOC_X86_SSA__BlockDesc_AddConstZero,(void*)OOC_X86_SSA__BlockDesc_AddConstDim,(void*)OOC_X86_SSA__BlockDesc_AddConstLength,(void*)OOC_X86_SSA__BlockDesc_AddAdr,(void*)OOC_X86_SSA__BlockDesc_AddAdrRT,(void*)OOC_X86_SSA__BlockDesc_AddAdrTypeDescr,(void*)OOC_X86_SSA__BlockDesc_AddAdrModuleDescr,(void*)OOC_X86_SSA__BlockDesc_AddFramePointerOffset,(void*)OOC_X86_SSA__BlockDesc_AddLoadRegister,(void*)OOC_X86_SSA__BlockDesc_AddBranch,(void*)OOC_X86_SSA__BlockDesc_AddMerge,(void*)OOC_X86_SSA__BlockDesc_AddMerge0,(void*)OOC_X86_SSA__BlockDesc_AddMerge2,(void*)OOC_X86_SSA__BlockDesc_AddGate,(void*)OOC_X86_SSA__BlockDesc_AddLoopStart,(void*)OOC_X86_SSA__BlockDesc_AddLoopBackedge,(void*)OOC_X86_SSA__BlockDesc_AddExit,(void*)OOC_X86_SSA__BlockDesc_SetMarkers,(void*)OOC_X86_SSA__MergeInstrDesc_AddJump}, NULL, &_mid, (OOC_CHAR8*)"MergeInstrDesc", 60, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__GateInstr = { (RT0__Struct[]){&_td_OOC_X86_SSA__GateInstrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"GateInstr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__GateInstrDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__GateInstrDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__GateInstrDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete}, NULL, &_mid, (OOC_CHAR8*)"GateInstrDesc", 52, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__LoopStartInstr = { (RT0__Struct[]){&_td_OOC_X86_SSA__LoopStartInstrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"LoopStartInstr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__LoopStartInstrDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__BlockDesc,&_td_OOC_X86_SSA__LoopStartInstrDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__LoopStartInstrDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete,(void*)OOC_X86_SSA__BlockDesc_Add,(void*)OOC_X86_SSA__BlockDesc_AddInFront,(void*)OOC_X86_SSA__BlockDesc_MoveBehind,(void*)OOC_X86_SSA__BlockDesc_Remove,(void*)OOC_X86_SSA__BlockDesc_RemoveAll,(void*)OOC_X86_SSA__BlockDesc_NestingDepth,(void*)OOC_X86_SSA__BlockDesc_Dominates,(void*)OOC_X86_SSA__BlockDesc_Count,(void*)OOC_X86_SSA__BlockDesc_Instructions,(void*)OOC_X86_SSA__BlockDesc_AllInstructions,(void*)OOC_X86_SSA__BlockDesc_AddInstr0,(void*)OOC_X86_SSA__BlockDesc_AddInstr1,(void*)OOC_X86_SSA__BlockDesc_AddInstr2,(void*)OOC_X86_SSA__BlockDesc_AddInstr3,(void*)OOC_X86_SSA__BlockDesc_AddBlock0,(void*)OOC_X86_SSA__BlockDesc_AddBlock1,(void*)OOC_X86_SSA__BlockDesc_AddConstType,(void*)OOC_X86_SSA__BlockDesc_AddConst,(void*)OOC_X86_SSA__BlockDesc_AddConstBool,(void*)OOC_X86_SSA__BlockDesc_AddConstInt,(void*)OOC_X86_SSA__BlockDesc_AddConstReal,(void*)OOC_X86_SSA__BlockDesc_AddConstZero,(void*)OOC_X86_SSA__BlockDesc_AddConstDim,(void*)OOC_X86_SSA__BlockDesc_AddConstLength,(void*)OOC_X86_SSA__BlockDesc_AddAdr,(void*)OOC_X86_SSA__BlockDesc_AddAdrRT,(void*)OOC_X86_SSA__BlockDesc_AddAdrTypeDescr,(void*)OOC_X86_SSA__BlockDesc_AddAdrModuleDescr,(void*)OOC_X86_SSA__BlockDesc_AddFramePointerOffset,(void*)OOC_X86_SSA__BlockDesc_AddLoadRegister,(void*)OOC_X86_SSA__BlockDesc_AddBranch,(void*)OOC_X86_SSA__BlockDesc_AddMerge,(void*)OOC_X86_SSA__BlockDesc_AddMerge0,(void*)OOC_X86_SSA__BlockDesc_AddMerge2,(void*)OOC_X86_SSA__BlockDesc_AddGate,(void*)OOC_X86_SSA__BlockDesc_AddLoopStart,(void*)OOC_X86_SSA__BlockDesc_AddLoopBackedge,(void*)OOC_X86_SSA__BlockDesc_AddExit,(void*)OOC_X86_SSA__BlockDesc_SetMarkers,(void*)OOC_X86_SSA__LoopStartInstrDesc_SetBackedge,(void*)OOC_X86_SSA__LoopStartInstrDesc_SetEnd}, NULL, &_mid, (OOC_CHAR8*)"LoopStartInstrDesc", 64, 5, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__LoopBackedgeInstr = { (RT0__Struct[]){&_td_OOC_X86_SSA__LoopBackedgeInstrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"LoopBackedgeInstr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__LoopBackedgeInstrDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__LoopBackedgeInstrDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__LoopBackedgeInstrDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete}, NULL, &_mid, (OOC_CHAR8*)"LoopBackedgeInstrDesc", 52, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__ExitInstr = { (RT0__Struct[]){&_td_OOC_X86_SSA__ExitInstrDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"ExitInstr", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__ExitInstrDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__ExitInstrDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__ExitInstrDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete}, NULL, &_mid, (OOC_CHAR8*)"ExitInstrDesc", 52, 4, 0, RT0__strRecord };
RT0__StructDesc _td_OOC_X86_SSA__FunctionBlock = { (RT0__Struct[]){&_td_OOC_X86_SSA__FunctionBlockDesc}, NULL, NULL, &_mid, (OOC_CHAR8*)"FunctionBlock", 4, -1, 0, RT0__strPointer };
RT0__StructDesc _td_OOC_X86_SSA__FunctionBlockDesc = { (RT0__Struct[]){&_td_RT0__ObjectDesc,&_td_Object__ObjectDesc,&_td_OOC_X86_SSA__NodeDesc,&_td_OOC_X86_SSA__InstrDesc,&_td_OOC_X86_SSA__BlockDesc,&_td_OOC_X86_SSA__FunctionBlockDesc}, (void*[]){(void*)RT0__ObjectDesc_Finalize,(void*)Object__ObjectDesc_ToString,(void*)Object__ObjectDesc_Equals,(void*)Object__ObjectDesc_HashCode,(void*)OOC_X86_SSA__FunctionBlockDesc_INIT,(void*)OOC_X86_SSA__InstrDesc_SetOpcode,(void*)OOC_X86_SSA__InstrDesc_NonImmediateUses,(void*)OOC_X86_SSA__InstrDesc_IsLive,(void*)OOC_X86_SSA__InstrDesc_Unchecked,(void*)OOC_X86_SSA__InstrDesc_IsLoopEndGate,(void*)OOC_X86_SSA__InstrDesc_TopLevelMerge,(void*)OOC_X86_SSA__InstrDesc_AllOpndsSameValue,(void*)OOC_X86_SSA__InstrDesc_SizeOpndList,(void*)OOC_X86_SSA__InstrDesc_SetDesignator,(void*)OOC_X86_SSA__InstrDesc_ExtendDesignator,(void*)OOC_X86_SSA__InstrDesc_AddOpnd,(void*)OOC_X86_SSA__InstrDesc_AddResult,(void*)OOC_X86_SSA__InstrDesc_AddResultExpr,(void*)OOC_X86_SSA__InstrDesc_AddResultReg,(void*)OOC_X86_SSA__InstrDesc_NthOpnd,(void*)OOC_X86_SSA__InstrDesc_NthArg,(void*)OOC_X86_SSA__InstrDesc_IncomingPaths,(void*)OOC_X86_SSA__InstrDesc_AddDep,(void*)OOC_X86_SSA__InstrDesc_GetDep,(void*)OOC_X86_SSA__InstrDesc_DeleteDep,(void*)OOC_X86_SSA__InstrDesc_GetBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstr,(void*)OOC_X86_SSA__InstrDesc_GetAfterInstrOpcode,(void*)OOC_X86_SSA__InstrDesc_GetBranchBeforeInstr,(void*)OOC_X86_SSA__InstrDesc_JumpTarget,(void*)OOC_X86_SSA__InstrDesc_MergingTarget,(void*)OOC_X86_SSA__InstrDesc_TransferDeps,(void*)OOC_X86_SSA__InstrDesc_DesignatorGateToGate,(void*)OOC_X86_SSA__InstrDesc_Operands,(void*)OOC_X86_SSA__InstrDesc_Results,(void*)OOC_X86_SSA__InstrDesc_GateOperands,(void*)OOC_X86_SSA__InstrDesc_BeforeList,(void*)OOC_X86_SSA__InstrDesc_AfterList,(void*)OOC_X86_SSA__InstrDesc_MoveToFront,(void*)OOC_X86_SSA__InstrDesc_Delete,(void*)OOC_X86_SSA__BlockDesc_Add,(void*)OOC_X86_SSA__BlockDesc_AddInFront,(void*)OOC_X86_SSA__BlockDesc_MoveBehind,(void*)OOC_X86_SSA__BlockDesc_Remove,(void*)OOC_X86_SSA__BlockDesc_RemoveAll,(void*)OOC_X86_SSA__BlockDesc_NestingDepth,(void*)OOC_X86_SSA__BlockDesc_Dominates,(void*)OOC_X86_SSA__BlockDesc_Count,(void*)OOC_X86_SSA__BlockDesc_Instructions,(void*)OOC_X86_SSA__BlockDesc_AllInstructions,(void*)OOC_X86_SSA__BlockDesc_AddInstr0,(void*)OOC_X86_SSA__BlockDesc_AddInstr1,(void*)OOC_X86_SSA__BlockDesc_AddInstr2,(void*)OOC_X86_SSA__BlockDesc_AddInstr3,(void*)OOC_X86_SSA__BlockDesc_AddBlock0,(void*)OOC_X86_SSA__BlockDesc_AddBlock1,(void*)OOC_X86_SSA__BlockDesc_AddConstType,(void*)OOC_X86_SSA__BlockDesc_AddConst,(void*)OOC_X86_SSA__BlockDesc_AddConstBool,(void*)OOC_X86_SSA__BlockDesc_AddConstInt,(void*)OOC_X86_SSA__BlockDesc_AddConstReal,(void*)OOC_X86_SSA__BlockDesc_AddConstZero,(void*)OOC_X86_SSA__BlockDesc_AddConstDim,(void*)OOC_X86_SSA__BlockDesc_AddConstLength,(void*)OOC_X86_SSA__BlockDesc_AddAdr,(void*)OOC_X86_SSA__BlockDesc_AddAdrRT,(void*)OOC_X86_SSA__BlockDesc_AddAdrTypeDescr,(void*)OOC_X86_SSA__BlockDesc_AddAdrModuleDescr,(void*)OOC_X86_SSA__BlockDesc_AddFramePointerOffset,(void*)OOC_X86_SSA__BlockDesc_AddLoadRegister,(void*)OOC_X86_SSA__BlockDesc_AddBranch,(void*)OOC_X86_SSA__BlockDesc_AddMerge,(void*)OOC_X86_SSA__BlockDesc_AddMerge0,(void*)OOC_X86_SSA__BlockDesc_AddMerge2,(void*)OOC_X86_SSA__BlockDesc_AddGate,(void*)OOC_X86_SSA__BlockDesc_AddLoopStart,(void*)OOC_X86_SSA__BlockDesc_AddLoopBackedge,(void*)OOC_X86_SSA__BlockDesc_AddExit,(void*)OOC_X86_SSA__BlockDesc_SetMarkers,(void*)OOC_X86_SSA__FunctionBlockDesc_SetEnter,(void*)OOC_X86_SSA__FunctionBlockDesc_SetExit,(void*)OOC_X86_SSA__FunctionBlockDesc_FixType,(void*)OOC_X86_SSA__FunctionBlockDesc_AllocateLocalVar,(void*)OOC_X86_SSA__FunctionBlockDesc_SetMaxSizeCallStack,(void*)OOC_X86_SSA__FunctionBlockDesc_Offset,(void*)OOC_X86_SSA__FunctionBlockDesc_AddGetLengthInstr,(void*)OOC_X86_SSA__FunctionBlockDesc_AddGetParamTypeTag,(void*)OOC_X86_SSA__FunctionBlockDesc_DeadCodeElimination}, NULL, &_mid, (OOC_CHAR8*)"FunctionBlockDesc", 84, 5, 0, RT0__strRecord };
static RT0__ModuleDesc _mid = { (OOC_CHAR8*)"OOC:X86:SSA", (RT0__Struct[]) { &_td_OOC_X86_SSA__Node, &_td_OOC_X86_SSA__Opnd, &_td_OOC_X86_SSA__Result, &_td_OOC_X86_SSA__Instr, &_td_OOC_X86_SSA__Block, &_td_OOC_X86_SSA__Selector, &_td_OOC_X86_SSA__Designator, &_td_OOC_X86_SSA__SelectorDesc, &_td_OOC_X86_SSA__Global, &_td_OOC_X86_SSA__GlobalDesc, &_td_OOC_X86_SSA__Var, &_td_OOC_X86_SSA__VarDesc, &_td_OOC_X86_SSA__Proc, &_td_OOC_X86_SSA__ProcDesc, &_td_OOC_X86_SSA__ProcName, &_td_OOC_X86_SSA__ProcNameDesc, &_td_OOC_X86_SSA__TypeDescr, &_td_OOC_X86_SSA__TypeDescrDesc, &_td_OOC_X86_SSA__ModuleDescr, &_td_OOC_X86_SSA__ModuleDescrDesc, &_td_OOC_X86_SSA__Const, &_td_OOC_X86_SSA__ConstDesc, &_td_OOC_X86_SSA__HeapObj, &_td_OOC_X86_SSA__HeapObjDesc, &_td_OOC_X86_SSA__Index, &_td_OOC_X86_SSA__IndexDesc, &_td_OOC_X86_SSA__Field, &_td_OOC_X86_SSA__FieldDesc, &_td_OOC_X86_SSA__NodeDesc, &_td_OOC_X86_SSA__OpndDesc, &_td_OOC_X86_SSA__ResultDesc, &_td_OOC_X86_SSA__IterResultUses, &_td_OOC_X86_SSA__IterResultUsesDesc, &_td_OOC_X86_SSA__Dep, &_td_OOC_X86_SSA__DepDesc, &_td_OOC_X86_SSA__InstrDesc, &_td_OOC_X86_SSA__IterOperands, &_td_OOC_X86_SSA__IterOperandsDesc, &_td_OOC_X86_SSA__IterInstrOperands, &_td_OOC_X86_SSA__IterInstrOperandsDesc, &_td_OOC_X86_SSA__IterInstrResults, &_td_OOC_X86_SSA__IterInstrResultsDesc, &_td_OOC_X86_SSA__IterJumpGateOperands, &_td_OOC_X86_SSA__IterJumpGateOperandsDesc, &_td_OOC_X86_SSA__IterInstrBeforeList, &_td_OOC_X86_SSA__IterInstrBeforeListDesc, &_td_OOC_X86_SSA__IterInstrAfterList, &_td_OOC_X86_SSA__IterInstrAfterListDesc, &_td_OOC_X86_SSA__BlockDesc, &_td_OOC_X86_SSA__IterBlockInstructions, &_td_OOC_X86_SSA__IterBlockInstructionsDesc, &_td_OOC_X86_SSA__IterBlockAllInstructions, &_td_OOC_X86_SSA__IterBlockAllInstructionsDesc, &_td_OOC_X86_SSA__BranchInstr, &_td_OOC_X86_SSA__MergeInstr, &_td_OOC_X86_SSA__BranchInstrDesc, &_td_OOC_X86_SSA__MergeInstrDesc, &_td_OOC_X86_SSA__GateInstr, &_td_OOC_X86_SSA__GateInstrDesc, &_td_OOC_X86_SSA__LoopStartInstr, &_td_OOC_X86_SSA__LoopStartInstrDesc, &_td_OOC_X86_SSA__LoopBackedgeInstr, &_td_OOC_X86_SSA__LoopBackedgeInstrDesc, &_td_OOC_X86_SSA__ExitInstr, &_td_OOC_X86_SSA__ExitInstrDesc, &_td_OOC_X86_SSA__FunctionBlock, &_td_OOC_X86_SSA__FunctionBlockDesc, NULL }, 0 };

extern void OOC_OOC_X86_SSA_open(RT0__Module client) {
  if (_mid.openCount == 0) {
    OOC_Object_open(&_mid);
    OOC_Object_Boxed_open(&_mid);
    OOC_Object_BigInt_open(&_mid);
    OOC_ADT_Dictionary_IntValue_open(&_mid);
    OOC_OOC_SymbolTable_open(&_mid);
    OOC_OOC_SymbolTable_Predef_open(&_mid);
    OOC_OOC_SymbolTable_TypeRules_open(&_mid);
    OOC_RT0_open(&_mid);
    OOC_Object_open(&_mid);
    OOC_Exception_open(&_mid);

    RT0__RegisterModule(&_mid);
    OOC_OOC_X86_SSA_init();
  }
  _mid.openCount++;
}
extern void OOC_OOC_X86_SSA_close(RT0__Module client) {
  _mid.openCount--;
  if (_mid.openCount == 0) { 
    OOC_OOC_X86_SSA_destroy();
    RT0__UnregisterModule(&_mid);

    OOC_Object_close(&_mid);
    OOC_Object_Boxed_close(&_mid);
    OOC_Object_BigInt_close(&_mid);
    OOC_ADT_Dictionary_IntValue_close(&_mid);
    OOC_OOC_SymbolTable_close(&_mid);
    OOC_OOC_SymbolTable_Predef_close(&_mid);
    OOC_OOC_SymbolTable_TypeRules_close(&_mid);
    OOC_RT0_close(&_mid);
    OOC_Object_close(&_mid);
    OOC_Exception_close(&_mid);
  }
}

/* --- */
