/* Generated by Nim Compiler v1.9.0 */ #define NIM_INTBITS 64 #define NIM_EmulateOverflowChecks #include "nimbase.h" #include #undef LANGUAGE_C #undef MIPSEB #undef MIPSEL #undef PPC #undef R3000 #undef R4000 #undef i386 #undef linux #undef mips #undef near #undef far #undef powerpc #undef unix #define nimfr_(x, y) #define nimln_(x, y) typedef struct tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q; typedef struct tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag; typedef struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ tySequence__xxu3GgaFAGO6lOns9aHaeLQ; typedef struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content; typedef struct tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA; typedef struct tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ; typedef struct tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA; typedef struct tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg; typedef struct NimStrPayload NimStrPayload; typedef struct NimStringV2 NimStringV2; typedef struct tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA; typedef struct tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ; typedef struct RootObj RootObj; typedef struct TNimTypeV2 TNimTypeV2; typedef struct tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw; typedef struct tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA; typedef struct tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg; typedef struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA; typedef struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA; typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w tySequence__Bre9bNyuQOg1EJKitjSzn8w; typedef struct tySequence__Bre9bNyuQOg1EJKitjSzn8w_Content tySequence__Bre9bNyuQOg1EJKitjSzn8w_Content; typedef struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A; typedef struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ; typedef struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content; struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ { NI len; tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content* p; }; typedef NU8 tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ; struct tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag { tySequence__xxu3GgaFAGO6lOns9aHaeLQ wasMovedLocs; tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind; NIM_BOOL hasReturn; NIM_BOOL hasBreak; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* label; tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* parent; }; struct tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ { NIM_BOOL somethingTodo; NI inFinally; }; struct tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg { NU16 line; NI16 col; NI32 fileIndex; }; typedef NU32 tySet_tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw; struct NimStrPayload { NI cap; NIM_CHAR data[SEQ_DECL_SIZE]; }; struct NimStringV2 { NI len; NimStrPayload* p; }; struct tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q { tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* typ; tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info; tySet_tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw flags; tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind; union{ struct {NI64 intVal; } _kind_1; struct {NF floatVal; } _kind_2; struct {NimStringV2 strVal; } _kind_3; struct {tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym; } _kind_4; struct {tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* ident; } _kind_5; struct {tySequence__xxu3GgaFAGO6lOns9aHaeLQ sons; } _kind_6; }; }; struct TNimTypeV2 { void* destructor; NI size; NI16 align; NI16 depth; NU32* display; void* traceImpl; void* typeInfoV1; NI flags; }; struct RootObj { TNimTypeV2* m_type; }; struct tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw { NI32 module; NI32 item; }; struct tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ { RootObj Sup; tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw itemId; }; typedef NU8 tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ; typedef NU16 tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg; typedef NU64 tySet_tyEnum_TSymFlag__TAs9cOBd13PVhEf42OX9cOdg; typedef NU32 tySet_tyEnum_TOption__PrH9cMsvu5oCG0HODAZ3CAg; typedef NU8 tyEnum_TLocKind__iCEcZjTaghPmL3Wx2e5DQw; typedef NU8 tyEnum_TStorageLoc__BKvMXWvKko6Yn5329c9aw9afg; typedef NU16 tySet_tyEnum_TLocFlag__9a7m8BSAfzn6yluCKaq6viw; struct tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA { tyEnum_TLocKind__iCEcZjTaghPmL3Wx2e5DQw k; tyEnum_TStorageLoc__BKvMXWvKko6Yn5329c9aw9afg storage; tySet_tyEnum_TLocFlag__9a7m8BSAfzn6yluCKaq6viw flags; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* lode; NimStringV2 r; }; struct tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA { tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ Sup; tyEnum_TSymKind__EmlFK9c4sdJy7UDy5lm8yQQ kind; union{ struct {tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* gcUnsafetyReason; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* transformedBody; } _kind_1; struct {tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* guard; NI bitsize; NI alignment; } _kind_2; }; tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg magic; tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* typ; tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* name; tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* owner; tySet_tyEnum_TSymFlag__TAs9cOBd13PVhEf42OX9cOdg flags; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* ast; tySet_tyEnum_TOption__PrH9cMsvu5oCG0HODAZ3CAg options; NI position; NI offset; tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA loc; tyObject_TLib__tP0u9cd1FuZgfCfM3WIm9cRg* annex; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* constraint; }; struct tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA { NI id; NimStringV2 s; tyObject_TIdent__L29bfCasnfXpB7u88iPkwMA* next; NI h; }; typedef NU8 tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw; struct tySequence__Bre9bNyuQOg1EJKitjSzn8w { NI len; tySequence__Bre9bNyuQOg1EJKitjSzn8w_Content* p; }; typedef NI tyArray__emiAJ8okywrJw7ZHLzlXbQ[34]; struct tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA { NI elems; NI counter; NI max; tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* head; tySequence__Bre9bNyuQOg1EJKitjSzn8w data; tyArray__emiAJ8okywrJw7ZHLzlXbQ a; }; typedef NU tyArray__VqSA39cBDWnwnJySTumCdjw[8]; struct tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA { tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* next; NI key; tyArray__VqSA39cBDWnwnJySTumCdjw bits; }; struct tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A { NI rc; NI rootIdx; }; typedef NU8 tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ; typedef NU8 tyEnum_TCallingConvention__XL1p2EKvOAlAHpc68ecZPw; typedef NU64 tySet_tyEnum_TTypeFlag__wRa4s6r4s9cXJ9abWKsrci1Q; struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ { NI len; tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content* p; }; struct tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA { tyObject_TIdObj__jPSvrmNCWI4CL3MSWxUHJQ Sup; tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ kind; tyEnum_TCallingConvention__XL1p2EKvOAlAHpc68ecZPw callConv; tySet_tyEnum_TTypeFlag__wRa4s6r4s9cXJ9abWKsrci1Q flags; tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ sons; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* owner; tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* sym; NI64 size; NI16 align; NI16 paddingAtEnd; tyObject_TLoc__cQfx3WjJDtozqFtY4RdR9cA loc; tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* typeInst; tyObject_ItemId__RG5oiYa2xm9bBBKInuP3ECw uniqueId; }; typedef NU8 tySet_tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ[9]; #ifndef tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP #define tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content { NI cap; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP #define tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content { NI cap; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP #define tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content { NI cap; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP #define tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content_PP struct tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content { NI cap; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__Bre9bNyuQOg1EJKitjSzn8w_Content_PP #define tySequence__Bre9bNyuQOg1EJKitjSzn8w_Content_PP struct tySequence__Bre9bNyuQOg1EJKitjSzn8w_Content { NI cap; tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* data[SEQ_DECL_SIZE];}; #endif #ifndef tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content_PP #define tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content_PP struct tySequence__iPgAQ0li6vRlH9cX9aT6CQgQ_Content { NI cap; tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* data[SEQ_DECL_SIZE];}; #endif static N_INLINE(void, nimZeroMem)(void* p, NI size); static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size); static N_INLINE(NIM_BOOL*, nimErrorFlag)(void); N_LIB_PRIVATE N_NIMCALL(void, analyse__optimizer_180)(tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ* c, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_4063)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA** dest, tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* src); N_LIB_PRIVATE N_NIMCALL(void, add__ast_4147)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* x, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* value); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___ast_3457)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src); static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b); static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size); static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size); N_LIB_PRIVATE N_NIMCALL(void, wasMovedDestroyPair__optimizer_153)(tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ* c, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* d); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, exprStructuralEquivalent__trees_63)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* a, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* b, NIM_BOOL strictSymEquality); static N_INLINE(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, skipAddr__ast_6671)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(void, del__closureiters_3859)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* x, NI i); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3454)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_4060)(tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA** dest); static N_INLINE(NI, len__ast_3325)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, canRaise__ast_6541)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* fn); N_LIB_PRIVATE N_NIMCALL(void, returnStmt__optimizer_74)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b); N_LIB_PRIVATE N_NIMCALL(void, setLen__ast_3741)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* s, NI newlen); N_LIB_PRIVATE N_NIMCALL(void, invalidateWasMoved__optimizer_136)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* x); N_LIB_PRIVATE N_NIMCALL(void*, newSeqPayload)(NI cap, NI elemSize, NI elemAlign); N_LIB_PRIVATE N_NIMCALL(void, nestedBlock__optimizer_17)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* parent, tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* Result); static N_INLINE(void, mergeBasicBlockInfo__optimizer_85)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* parent, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* this_0); N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_3729)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* dest, tySequence__xxu3GgaFAGO6lOns9aHaeLQ src); N_LIB_PRIVATE N_NIMCALL(void, intersect__optimizer_110)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* summary, tySequence__xxu3GgaFAGO6lOns9aHaeLQ branch); static N_INLINE(void, initIntSet__pureZcollectionsZintsets_389)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result); N_LIB_PRIVATE N_NIMCALL(void, initPackedSet__pureZcollectionsZintsets_16)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result); N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wasMovedTarget__optimizer_92)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* matches, tySequence__xxu3GgaFAGO6lOns9aHaeLQ branch, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* moveTarget); N_LIB_PRIVATE N_NIMCALL(void, incl__pureZcollectionsZintsets_202)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* s, NI key); static N_INLINE(NI, pluspercent___system_770)(NI x, NI y); N_LIB_PRIVATE N_NIMCALL(void, eqcopy___pureZcollectionsZintsets_27)(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA** dest, tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* src); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZcollectionsZintsets_24)(tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA** dest); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___pureZcollectionsZintsets_181)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* dest); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___optimizer_37)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* dest); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3723)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* dest); static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p); static N_INLINE(NI, minuspercent___system_790)(NI x, NI y); N_LIB_PRIVATE N_NIMCALL(void, nimDestroyAndDispose)(void* p); N_LIB_PRIVATE N_NIMCALL(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA*, skipTypes__ast_4803)(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* t, tySet_tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ kinds); N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___ast_3543)(tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA** dest); N_LIB_PRIVATE N_NIMCALL(void, breakStmt__optimizer_50)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); static N_INLINE(NI, safeLen__ast_3318)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, shallowCopy__ast_5838)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src); N_LIB_PRIVATE N_NIMCALL(void, opt__optimizer_360)(tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* parent, NI parentPos); N_LIB_PRIVATE N_NIMCALL(void, eqsink___ast_3460)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q** dest, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* src); N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, newNodeI__ast_3949)(tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind, tyObject_TLineInfo__7ZAGqjaN6WqWPlHP9cRagRg info); static const struct { NI cap; NIM_CHAR data[8+1]; } TM__oWufXaZyaVPOHSSzjwt0PQ_2 = { 8 | NIM_STRLIT_FLAG, "=destroy" }; static const NimStringV2 TM__oWufXaZyaVPOHSSzjwt0PQ_3 = {8, (NimStrPayload*)&TM__oWufXaZyaVPOHSSzjwt0PQ_2}; static const struct { NI cap; NIM_CHAR data[5+1]; } TM__oWufXaZyaVPOHSSzjwt0PQ_4 = { 5 | NIM_STRLIT_FLAG, "=sink" }; static const NimStringV2 TM__oWufXaZyaVPOHSSzjwt0PQ_5 = {5, (NimStrPayload*)&TM__oWufXaZyaVPOHSSzjwt0PQ_4}; static NIM_CONST tySet_tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ TM__oWufXaZyaVPOHSSzjwt0PQ_6 = { 0x10, 0xa8, 0x90, 0x00, 0x00, 0x60, 0x80, 0x00, 0x00} ; extern NIM_BOOL nimInErrorMode__system_3978; static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) { void* T1_; T1_ = (void*)0; T1_ = memset(a, v, ((size_t) (size))); } static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) { NIM_BOOL* result; result = (NIM_BOOL*)0; result = (&nimInErrorMode__system_3978); return result; } static N_INLINE(void, nimZeroMem)(void* p, NI size) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimSetMem__systemZmemory_7(p, ((int)0), size); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } static N_INLINE(int, nimCmpMem)(void* a, void* b, NI size) { int result; result = (int)0; result = memcmp(a, b, ((size_t) (size))); return result; } static N_INLINE(NIM_BOOL, equalMem__system_1727)(void* a, void* b, NI size) { NIM_BOOL result; int T1_; result = (NIM_BOOL)0; T1_ = (int)0; T1_ = nimCmpMem(a, b, size); result = (T1_ == ((NI32)0)); return result; } static N_INLINE(NIM_BOOL, eqStrings)(NimStringV2 a, NimStringV2 b) { NIM_BOOL result; NI alen; NI blen; { result = (NIM_BOOL)0; alen = a.len; blen = b.len; { if (!(alen == blen)) goto LA3_; { if (!(alen == ((NI)0))) goto LA7_; result = NIM_TRUE; goto BeforeRet_; } LA7_: ; result = equalMem__system_1727(((void*) ((&a.p->data[((NI)0)]))), ((void*) ((&b.p->data[((NI)0)]))), ((NI) (alen))); goto BeforeRet_; } LA3_: ; }BeforeRet_: ; return result; } static N_INLINE(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, skipAddr__ast_6671)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; T1_ = NIM_NIL; { if (!((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)64))) goto LA4_; eqcopy___ast_3457(&result, (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA2_; LA4_: ; { eqcopy___ast_3457(&result, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA2_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, wasMovedDestroyPair__optimizer_153)(tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ* c, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* d) { NI i; NIM_BOOL oldNimErrFin4_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); i = ((NI)0); { while (1) { NI T3_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__2; T3_ = (*b).wasMovedLocs.len; if (!(i < T3_)) goto LA2 ; colontmpD_ = NIM_NIL; colontmpD__2 = NIM_NIL; { NIM_BOOL T7_; colontmpD_ = skipAddr__ast_6671((*(*b).wasMovedLocs.p->data[i])._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; colontmpD__2 = skipAddr__ast_6671((*d)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; T7_ = (NIM_BOOL)0; T7_ = exprStructuralEquivalent__trees_63(colontmpD_, colontmpD__2, NIM_TRUE); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; if (!T7_) goto LA8_; (*(*b).wasMovedLocs.p->data[i]).flags |= ((NU32)1)<<(((((tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw)0))) & 31); (*c).somethingTodo = NIM_TRUE; (*d).flags |= ((NU32)1)<<(((((tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw)0))) & 31); del__closureiters_3859((&(*b).wasMovedLocs), ((NI) (i))); } goto LA5_; LA8_: ; { i += ((NI)1); } LA5_: ; { LA4_:; } { oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&colontmpD__2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin4_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA2: ; } }BeforeRet_: ; } static N_INLINE(NI, len__ast_3325)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NI result; NI T1_; result = (NI)0; T1_ = (*n)._kind_6.sons.len; result = T1_; return result; } N_LIB_PRIVATE N_NIMCALL(void, returnStmt__optimizer_74)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b) { tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* it; (*b).hasReturn = NIM_TRUE; it = b; { while (1) { if (!!((it == ((tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag*) NIM_NIL)))) goto LA2 ; setLen__ast_3741((&(*it).wasMovedLocs), ((NI)0)); it = (*it).parent; } LA2: ; } } N_LIB_PRIVATE N_NIMCALL(void, invalidateWasMoved__optimizer_136)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* x) { NI i; NIM_BOOL oldNimErrFin4_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); i = ((NI)0); { while (1) { NI T3_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; T3_ = (*c).wasMovedLocs.len; if (!(i < T3_)) goto LA2 ; colontmpD_ = NIM_NIL; { NIM_BOOL T7_; colontmpD_ = skipAddr__ast_6671((*(*c).wasMovedLocs.p->data[i])._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; T7_ = (NIM_BOOL)0; T7_ = exprStructuralEquivalent__trees_63(colontmpD_, x, NIM_TRUE); if (NIM_UNLIKELY(*nimErr_)) goto LA4_; if (!T7_) goto LA8_; del__closureiters_3859((&(*c).wasMovedLocs), ((NI) (i))); } goto LA5_; LA8_: ; { i += ((NI)1); } LA5_: ; { LA4_:; } { oldNimErrFin4_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin4_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA2: ; } }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(void, nestedBlock__optimizer_17)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* parent, tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ kind, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* Result) { tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ colontmpD_; tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* colontmpD__2; colontmpD_ = (tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0; colontmpD__2 = (tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag*)0; nimZeroMem((void*)Result, sizeof(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag)); (*Result).wasMovedLocs.len = 0; (*Result).wasMovedLocs.p = (tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content*) newSeqPayload(0, sizeof(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*), NIM_ALIGNOF(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*)); colontmpD_ = kind; (*Result).kind = colontmpD_; (*Result).hasReturn = NIM_FALSE; (*Result).hasBreak = NIM_FALSE; (*Result).label = ((tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA*) NIM_NIL); colontmpD__2 = parent; (*Result).parent = colontmpD__2; } static N_INLINE(void, mergeBasicBlockInfo__optimizer_85)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* parent, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* this_0) { { if (!(*this_0).hasReturn) goto LA3_; setLen__ast_3741((&(*parent).wasMovedLocs), ((NI)0)); (*parent).hasReturn = NIM_TRUE; } LA3_: ; } static N_INLINE(void, initIntSet__pureZcollectionsZintsets_389)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* Result) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); initPackedSet__pureZcollectionsZintsets_16(Result); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, wasMovedTarget__optimizer_92)(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA* matches, tySequence__xxu3GgaFAGO6lOns9aHaeLQ branch, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* moveTarget) { NIM_BOOL result; NIM_BOOL oldNimErrFin5_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NIM_BOOL)0; result = NIM_FALSE; { NI i; NI colontmp_; NI T2_; NI i_2; i = (NI)0; colontmp_ = (NI)0; T2_ = branch.len; colontmp_ = T2_; i_2 = ((NI)0); { while (1) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; if (!(i_2 < colontmp_)) goto LA4 ; colontmpD_ = NIM_NIL; i = i_2; { NIM_BOOL T8_; colontmpD_ = skipAddr__ast_6671((*branch.p->data[i])._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA5_; T8_ = (NIM_BOOL)0; T8_ = exprStructuralEquivalent__trees_63(colontmpD_, moveTarget, NIM_TRUE); if (NIM_UNLIKELY(*nimErr_)) goto LA5_; if (!T8_) goto LA9_; result = NIM_TRUE; incl__pureZcollectionsZintsets_202(matches, i); if (NIM_UNLIKELY(*nimErr_)) goto LA5_; } LA9_: ; i_2 += ((NI)1); { LA5_:; } { oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin5_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA4: ; } } }BeforeRet_: ; return result; } static N_INLINE(NI, pluspercent___system_770)(NI x, NI y) { NI result; result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) + (NU64)(((NU) (y)))))); return result; } N_LIB_PRIVATE N_NIMCALL(void, intersect__optimizer_110)(tySequence__xxu3GgaFAGO6lOns9aHaeLQ* summary, tySequence__xxu3GgaFAGO6lOns9aHaeLQ branch) { tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA matches; NI i; NIM_BOOL oldNimErrFin5_; NIM_BOOL oldNimErrFin1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); nimZeroMem((void*)(&matches), sizeof(tyObject_PackedSet__IhxwDBRi51nGrosBGFKcsA)); i = ((NI)0); initIntSet__pureZcollectionsZintsets_389((&matches)); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { while (1) { NI T4_; tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; T4_ = (*summary).len; if (!(i < T4_)) goto LA3 ; colontmpD_ = NIM_NIL; { NIM_BOOL T8_; colontmpD_ = skipAddr__ast_6671((*(*summary).p->data[i])._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA5_; T8_ = (NIM_BOOL)0; T8_ = wasMovedTarget__optimizer_92((&matches), branch, colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto LA5_; if (!T8_) goto LA9_; i += ((NI)1); } goto LA6_; LA9_: ; { del__closureiters_3859(summary, ((NI) (i))); } LA6_: ; { LA5_:; } { oldNimErrFin5_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&colontmpD_); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; *nimErr_ = oldNimErrFin5_; } if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA3: ; } { NI m; m = (NI)0; { if (!(matches.elems <= ((NI)34))) goto LA17_; { NI i_2; NI i_3; i_2 = (NI)0; i_3 = ((NI)0); { while (1) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__2; if (!(i_3 < matches.elems)) goto LA21 ; colontmpD__2 = NIM_NIL; i_2 = i_3; m = matches.a[(i_2)- 0]; colontmpD__2 = 0; eqcopy___ast_3457(&colontmpD__2, branch.p->data[m]); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; add__ast_4147((&(*summary)), colontmpD__2); i_3 += ((NI)1); } LA21: ; } } } goto LA15_; LA17_: ; { tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA* r; r = NIM_NIL; r = matches.head; matches.head = 0; { while (1) { NI i_4; if (!!((r == ((tyObject_TrunkcolonObjectType___POcWT53G7t0BSUjc31o0iA*) NIM_NIL)))) goto LA24 ; i_4 = ((NI)0); { while (1) { NU w; NI j; if (!(i_4 <= ((NI)7))) goto LA26 ; w = (*r).bits[(i_4)- 0]; j = ((NI)0); { while (1) { if (!!((w == ((NU)0)))) goto LA28 ; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__3; NI T33_; if (!!(((NU)(w & ((NU)1)) == ((NU)0)))) goto LA31_; colontmpD__3 = NIM_NIL; T33_ = (NI)0; T33_ = pluspercent___system_770((NI)((NU64)(i_4) << (NU64)(((NI)6))), j); m = (NI)((NI)((NU64)((*r).key) << (NU64)(((NI)9))) | T33_); colontmpD__3 = 0; eqcopy___ast_3457(&colontmpD__3, branch.p->data[m]); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; add__ast_4147((&(*summary)), colontmpD__3); } LA31_: ; j += ((NI)1); w = (NU)((NU64)(w) >> (NU64)(((NI)1))); } LA28: ; } i_4 += ((NI)1); } LA26: ; } eqcopy___pureZcollectionsZintsets_27(&r, (*r).next); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA24: ; } eqdestroy___pureZcollectionsZintsets_24(&r); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA15_: ; } { LA1_:; } { oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___pureZcollectionsZintsets_181((&matches)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin1_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; } static N_INLINE(NI, minuspercent___system_790)(NI x, NI y) { NI result; result = (NI)0; result = ((NI) ((NU)((NU64)(((NU) (x))) - (NU64)(((NU) (y)))))); return result; } static N_INLINE(NIM_BOOL, nimDecRefIsLast)(void* p) { NIM_BOOL result; result = (NIM_BOOL)0; { tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A* cell; NI T5_; if (!!((p == NIM_NIL))) goto LA3_; T5_ = (NI)0; T5_ = minuspercent___system_790(((NI) (ptrdiff_t) (p)), ((NI)16)); cell = ((tyObject_RefHeader__Gi7WQzlT1ZRToh9a2ueYb4A*) (T5_)); { if (!((NI)((*cell).rc & ((NI)-16)) == ((NI)0))) goto LA8_; result = NIM_TRUE; } goto LA6_; LA8_: ; { (*cell).rc -= ((NI)16); } LA6_: ; } LA3_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___optimizer_37)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* dest) { NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); eqdestroy___ast_3723((&(*dest).wasMovedLocs)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; { NIM_BOOL T3_; T3_ = (NIM_BOOL)0; T3_ = nimDecRefIsLast((*dest).label); if (!T3_) goto LA4_; nimDestroyAndDispose((*dest).label); } LA4_: ; }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(void, breakStmt__optimizer_50)(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* it; it = b; { while (1) { if (!!((it == ((tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag*) NIM_NIL)))) goto LA2 ; setLen__ast_3741((&(*it).wasMovedLocs), ((NI)0)); (*it).hasBreak = NIM_TRUE; { if (!((*n).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3))) goto LA5_; { if (!((*it).label == (*n)._kind_4.sym)) goto LA9_; goto LA1; } LA9_: ; } goto LA3_; LA5_: ; { { if (!((*it).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)96) || (*it).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)112) || (*it).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)127))) goto LA14_; goto LA1; } LA14_: ; } LA3_: ; it = (*it).parent; } LA2: ; } LA1: ; } static N_INLINE(NI, safeLen__ast_3318)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NI result; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = (NI)0; { if (!((*n).kind >= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0) && (*n).kind <= ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23))) goto LA3_; result = ((NI)0); } goto LA1_; LA3_: ; { result = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA1_: ; }BeforeRet_: ; return result; } N_LIB_PRIVATE N_NIMCALL(void, analyse__optimizer_180)(tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ* c, tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag* b, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { NIM_BOOL oldNimErrFin6_; NIM_BOOL oldNimErrFin58_; NIM_BOOL oldNimErrFin53_; NIM_BOOL oldNimErrFin85_; NIM_BOOL oldNimErrFin78_; NIM_BOOL oldNimErrFin108_; NIM_BOOL oldNimErrFin112_; NIM_BOOL oldNimErrFin116_; NIM_BOOL oldNimErrFin126_; NIM_BOOL oldNimErrFin134_; NIM_BOOL oldNimErrFin142_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); switch ((*n).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)26) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)32): { NIM_BOOL special; NIM_BOOL reverse; special = NIM_FALSE; reverse = NIM_FALSE; { tyObject_TSym__9cob5UPXvLCxy8mslvxEYzA* s; if (!((*(*n)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3))) goto LA4_; s = NIM_NIL; eqcopy___ast_4063(&s, (*(*n)._kind_6.sons.p->data[((NI)0)])._kind_4.sym); if (NIM_UNLIKELY(*nimErr_)) goto LA6_; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD_; if (!((*s).magic == ((tyEnum_TMagic__mTDI9bmjHUNrwgx3GHm4Krg)150))) goto LA9_; colontmpD_ = NIM_NIL; colontmpD_ = 0; eqcopy___ast_3457(&colontmpD_, n); if (NIM_UNLIKELY(*nimErr_)) goto LA6_; add__ast_4147((&(*b).wasMovedLocs), colontmpD_); special = NIM_TRUE; } goto LA7_; LA9_: ; { if (!eqStrings((*(*s).name).s, TM__oWufXaZyaVPOHSSzjwt0PQ_3)) goto LA12_; { NIM_BOOL T16_; NIM_BOOL T18_; T16_ = (NIM_BOOL)0; T16_ = (((NI)0) < (*c).inFinally); if (!(T16_)) goto LA17_; T18_ = (NIM_BOOL)0; T18_ = (*b).hasReturn; if (T18_) goto LA19_; T18_ = (*b).hasBreak; LA19_: ; T16_ = T18_; LA17_: ; if (!T16_) goto LA20_; } goto LA14_; LA20_: ; { wasMovedDestroyPair__optimizer_153(c, b, n); if (NIM_UNLIKELY(*nimErr_)) goto LA6_; } LA14_: ; special = NIM_TRUE; } goto LA7_; LA12_: ; { if (!eqStrings((*(*s).name).s, TM__oWufXaZyaVPOHSSzjwt0PQ_5)) goto LA24_; reverse = NIM_TRUE; } goto LA7_; LA24_: ; LA7_: ; { LA6_:; } { oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_4060(&s); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin6_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA4_: ; { if (!!(special)) goto LA30_; { if (!!(reverse)) goto LA34_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA38 ; i = i_2; analyse__optimizer_180(c, b, (*n)._kind_6.sons.p->data[i]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_2 += ((NI)1); } LA38: ; } } } goto LA32_; LA34_: ; { { NI i_3; NI colontmp__2; NI T41_; NI res; i_3 = (NI)0; colontmp__2 = (NI)0; T41_ = (NI)0; T41_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; colontmp__2 = (NI)(T41_ - ((NI)1)); res = colontmp__2; { while (1) { if (!(((NI)0) <= res)) goto LA43 ; i_3 = res; analyse__optimizer_180(c, b, (*n)._kind_6.sons.p->data[i_3]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; res -= ((NI)1); } LA43: ; } } } LA32_: ; { NIM_BOOL T46_; T46_ = (NIM_BOOL)0; T46_ = canRaise__ast_6541((*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; if (!T46_) goto LA47_; returnStmt__optimizer_74(b); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA47_: ; } LA30_: ; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3): { invalidateWasMoved__optimizer_136(b, n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)2): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)4) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)98): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)79): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)81): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)80): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)84): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)82): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)83): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)51): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)52): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)159): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)101): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)102): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)121): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)116): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)118): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)90): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)125): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)158): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)132): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)123): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)122): { } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)73): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)74): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)149): { analyse__optimizer_180(c, b, (*n)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; analyse__optimizer_180(c, b, (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)92): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)48): { tySequence__xxu3GgaFAGO6lOns9aHaeLQ wasMovedSet; NIM_BOOL isExhaustive; NI T54_; wasMovedSet.len = 0; wasMovedSet.p = NIM_NIL; T54_ = (NI)0; T54_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto LA53_; isExhaustive = ((*(*n)._kind_6.sons.p->data[(NI)(T54_ - ((NI)1))]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)88) || (*(*n)._kind_6.sons.p->data[(NI)(T54_ - ((NI)1))]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)50)); wasMovedSet.len = 0; wasMovedSet.p = (tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content*) newSeqPayload(0, sizeof(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*), NIM_ALIGNOF(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*)); { NI i_4; NI colontmp__3; NI i_5; i_4 = (NI)0; colontmp__3 = (NI)0; colontmp__3 = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto LA53_; i_5 = ((NI)0); { while (1) { tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag branch; if (!(i_5 < colontmp__3)) goto LA57 ; nimZeroMem((void*)(&branch), sizeof(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag)); i_4 = i_5; nestedBlock__optimizer_17(b, (*(*n)._kind_6.sons.p->data[i_4]).kind, (&branch)); if (NIM_UNLIKELY(*nimErr_)) goto LA58_; analyse__optimizer_180(c, (&branch), (*n)._kind_6.sons.p->data[i_4]); if (NIM_UNLIKELY(*nimErr_)) goto LA58_; mergeBasicBlockInfo__optimizer_85(b, (&branch)); if (NIM_UNLIKELY(*nimErr_)) goto LA58_; { if (!isExhaustive) goto LA61_; { tySequence__xxu3GgaFAGO6lOns9aHaeLQ T67_; if (!(i_4 == ((NI)0))) goto LA65_; T67_.len = 0; T67_.p = NIM_NIL; T67_ = branch.wasMovedLocs; branch.wasMovedLocs.len = 0; branch.wasMovedLocs.p = NIM_NIL; eqsink___ast_3729((&wasMovedSet), T67_); if (NIM_UNLIKELY(*nimErr_)) goto LA58_; } goto LA63_; LA65_: ; { intersect__optimizer_110((&wasMovedSet), branch.wasMovedLocs); if (NIM_UNLIKELY(*nimErr_)) goto LA58_; } LA63_: ; } LA61_: ; i_5 += ((NI)1); { LA58_:; } { oldNimErrFin58_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___optimizer_37((&branch)); if (NIM_UNLIKELY(*nimErr_)) goto LA53_; *nimErr_ = oldNimErrFin58_; } if (NIM_UNLIKELY(*nimErr_)) goto LA53_; } LA57: ; } } { NI i_6; NI colontmp__4; NI T72_; NI i_7; i_6 = (NI)0; colontmp__4 = (NI)0; T72_ = wasMovedSet.len; colontmp__4 = T72_; i_7 = ((NI)0); { while (1) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__2; if (!(i_7 < colontmp__4)) goto LA74 ; colontmpD__2 = NIM_NIL; i_6 = i_7; colontmpD__2 = 0; eqcopy___ast_3457(&colontmpD__2, wasMovedSet.p->data[i_6]); if (NIM_UNLIKELY(*nimErr_)) goto LA53_; add__ast_4147((&(*b).wasMovedLocs), colontmpD__2); i_7 += ((NI)1); } LA74: ; } } { LA53_:; } { oldNimErrFin53_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3723((&wasMovedSet)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin53_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)97): { tyObject_TType__qs8ld9cHTjcxh7xYsvWduXA* colontmpD__3; tySequence__xxu3GgaFAGO6lOns9aHaeLQ wasMovedSet_2; NIM_BOOL isExhaustive_2; NIM_BOOL T79_; NI T81_; colontmpD__3 = NIM_NIL; wasMovedSet_2.len = 0; wasMovedSet_2.p = NIM_NIL; T79_ = (NIM_BOOL)0; colontmpD__3 = skipTypes__ast_4803((*(*n)._kind_6.sons.p->data[((NI)0)]).typ, TM__oWufXaZyaVPOHSSzjwt0PQ_6); if (NIM_UNLIKELY(*nimErr_)) goto LA78_; T79_ = !(((*colontmpD__3).kind >= ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)36) && (*colontmpD__3).kind <= ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)39) || (*colontmpD__3).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)28) || (*colontmpD__3).kind == ((tyEnum_TTypeKind__cu4lI59aFp7m9cDkg2Nfr7ZQ)29))); if (T79_) goto LA80_; T81_ = (NI)0; T81_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto LA78_; T79_ = ((*(*n)._kind_6.sons.p->data[(NI)(T81_ - ((NI)1))]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)88)); LA80_: ; isExhaustive_2 = T79_; analyse__optimizer_180(c, b, (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto LA78_; wasMovedSet_2.len = 0; wasMovedSet_2.p = (tySequence__xxu3GgaFAGO6lOns9aHaeLQ_Content*) newSeqPayload(0, sizeof(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*), NIM_ALIGNOF(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*)); { NI i_8; NI colontmp__5; NI i_9; i_8 = (NI)0; colontmp__5 = (NI)0; colontmp__5 = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto LA78_; i_9 = ((NI)1); { while (1) { tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag branch_2; if (!(i_9 < colontmp__5)) goto LA84 ; nimZeroMem((void*)(&branch_2), sizeof(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag)); i_8 = i_9; nestedBlock__optimizer_17(b, (*(*n)._kind_6.sons.p->data[i_8]).kind, (&branch_2)); if (NIM_UNLIKELY(*nimErr_)) goto LA85_; analyse__optimizer_180(c, (&branch_2), (*n)._kind_6.sons.p->data[i_8]); if (NIM_UNLIKELY(*nimErr_)) goto LA85_; mergeBasicBlockInfo__optimizer_85(b, (&branch_2)); if (NIM_UNLIKELY(*nimErr_)) goto LA85_; { if (!isExhaustive_2) goto LA88_; { tySequence__xxu3GgaFAGO6lOns9aHaeLQ T94_; if (!(i_8 == ((NI)1))) goto LA92_; T94_.len = 0; T94_.p = NIM_NIL; T94_ = branch_2.wasMovedLocs; branch_2.wasMovedLocs.len = 0; branch_2.wasMovedLocs.p = NIM_NIL; eqsink___ast_3729((&wasMovedSet_2), T94_); if (NIM_UNLIKELY(*nimErr_)) goto LA85_; } goto LA90_; LA92_: ; { intersect__optimizer_110((&wasMovedSet_2), branch_2.wasMovedLocs); if (NIM_UNLIKELY(*nimErr_)) goto LA85_; } LA90_: ; } LA88_: ; i_9 += ((NI)1); { LA85_:; } { oldNimErrFin85_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___optimizer_37((&branch_2)); if (NIM_UNLIKELY(*nimErr_)) goto LA78_; *nimErr_ = oldNimErrFin85_; } if (NIM_UNLIKELY(*nimErr_)) goto LA78_; } LA84: ; } } { NI i_10; NI colontmp__6; NI T99_; NI i_11; i_10 = (NI)0; colontmp__6 = (NI)0; T99_ = wasMovedSet_2.len; colontmp__6 = T99_; i_11 = ((NI)0); { while (1) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* colontmpD__4; if (!(i_11 < colontmp__6)) goto LA101 ; colontmpD__4 = NIM_NIL; i_10 = i_11; colontmpD__4 = 0; eqcopy___ast_3457(&colontmpD__4, wasMovedSet_2.p->data[i_10]); if (NIM_UNLIKELY(*nimErr_)) goto LA78_; add__ast_4147((&(*b).wasMovedLocs), colontmpD__4); i_11 += ((NI)1); } LA101: ; } } { LA78_:; } { oldNimErrFin78_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3723((&wasMovedSet_2)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqdestroy___ast_3543(&colontmpD__3); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin78_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)106): { { NI i_12; NI colontmp__7; NI i_13; i_12 = (NI)0; colontmp__7 = (NI)0; colontmp__7 = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; i_13 = ((NI)0); { while (1) { tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag tryBody; if (!(i_13 < colontmp__7)) goto LA107 ; nimZeroMem((void*)(&tryBody), sizeof(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag)); i_12 = i_13; nestedBlock__optimizer_17(b, ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)106), (&tryBody)); if (NIM_UNLIKELY(*nimErr_)) goto LA108_; analyse__optimizer_180(c, (&tryBody), (*n)._kind_6.sons.p->data[i_12]); if (NIM_UNLIKELY(*nimErr_)) goto LA108_; mergeBasicBlockInfo__optimizer_85(b, (&tryBody)); if (NIM_UNLIKELY(*nimErr_)) goto LA108_; i_13 += ((NI)1); { LA108_:; } { oldNimErrFin108_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___optimizer_37((&tryBody)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin108_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA107: ; } } } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)96): { tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag loopBody; nimZeroMem((void*)(&loopBody), sizeof(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag)); analyse__optimizer_180(c, b, (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto LA112_; nestedBlock__optimizer_17(b, ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)96), (&loopBody)); if (NIM_UNLIKELY(*nimErr_)) goto LA112_; analyse__optimizer_180(c, (&loopBody), (*n)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA112_; mergeBasicBlockInfo__optimizer_85(b, (&loopBody)); if (NIM_UNLIKELY(*nimErr_)) goto LA112_; { LA112_:; } { oldNimErrFin112_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___optimizer_37((&loopBody)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin112_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)112): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)127): { tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag blockBody; nimZeroMem((void*)(&blockBody), sizeof(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag)); nestedBlock__optimizer_17(b, (*n).kind, (&blockBody)); if (NIM_UNLIKELY(*nimErr_)) goto LA116_; { if (!((*(*n)._kind_6.sons.p->data[((NI)0)]).kind == ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)3))) goto LA119_; eqcopy___ast_4063(&blockBody.label, (*(*n)._kind_6.sons.p->data[((NI)0)])._kind_4.sym); if (NIM_UNLIKELY(*nimErr_)) goto LA116_; } LA119_: ; analyse__optimizer_180(c, (&blockBody), (*n)._kind_6.sons.p->data[((NI)1)]); if (NIM_UNLIKELY(*nimErr_)) goto LA116_; mergeBasicBlockInfo__optimizer_85(b, (&blockBody)); if (NIM_UNLIKELY(*nimErr_)) goto LA116_; { LA116_:; } { oldNimErrFin116_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___optimizer_37((&blockBody)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin116_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)110): { breakStmt__optimizer_50(b, (*n)._kind_6.sons.p->data[((NI)0)]); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)109): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)108): { { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* child; child = NIM_NIL; { NI i_14; NI colontmp__8; NI i_15; i_14 = (NI)0; colontmp__8 = (NI)0; colontmp__8 = safeLen__ast_3318(n); if (NIM_UNLIKELY(*nimErr_)) goto LA126_; i_15 = ((NI)0); { while (1) { if (!(i_15 < colontmp__8)) goto LA129 ; i_14 = i_15; eqcopy___ast_3457(&child, (*n)._kind_6.sons.p->data[i_14]); if (NIM_UNLIKELY(*nimErr_)) goto LA126_; analyse__optimizer_180(c, b, child); if (NIM_UNLIKELY(*nimErr_)) goto LA126_; i_15 += ((NI)1); } LA129: ; } } { LA126_:; } { oldNimErrFin126_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&child); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin126_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } returnStmt__optimizer_74(b); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)107): { (*c).inFinally += ((NI)1); { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* child_2; child_2 = NIM_NIL; { NI i_16; NI colontmp__9; NI i_17; i_16 = (NI)0; colontmp__9 = (NI)0; colontmp__9 = safeLen__ast_3318(n); if (NIM_UNLIKELY(*nimErr_)) goto LA134_; i_17 = ((NI)0); { while (1) { if (!(i_17 < colontmp__9)) goto LA137 ; i_16 = i_17; eqcopy___ast_3457(&child_2, (*n)._kind_6.sons.p->data[i_16]); if (NIM_UNLIKELY(*nimErr_)) goto LA134_; analyse__optimizer_180(c, b, child_2); if (NIM_UNLIKELY(*nimErr_)) goto LA134_; i_17 += ((NI)1); } LA137: ; } } { LA134_:; } { oldNimErrFin134_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&child_2); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin134_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } (*c).inFinally -= ((NI)1); } break; default: { { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* child_3; child_3 = NIM_NIL; { NI i_18; NI colontmp__10; NI i_19; i_18 = (NI)0; colontmp__10 = (NI)0; colontmp__10 = safeLen__ast_3318(n); if (NIM_UNLIKELY(*nimErr_)) goto LA142_; i_19 = ((NI)0); { while (1) { if (!(i_19 < colontmp__10)) goto LA145 ; i_18 = i_19; eqcopy___ast_3457(&child_3, (*n)._kind_6.sons.p->data[i_18]); if (NIM_UNLIKELY(*nimErr_)) goto LA142_; analyse__optimizer_180(c, b, child_3); if (NIM_UNLIKELY(*nimErr_)) goto LA142_; i_19 += ((NI)1); } LA145: ; } } { LA142_:; } { oldNimErrFin142_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&child_3); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin142_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } } break; } }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(void, opt__optimizer_360)(tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ c, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n, tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* parent, NI parentPos) { NIM_BOOL oldNimErrFin8_; NIM_BOOL oldNimErrFin16_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); switch ((*n).kind) { case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)26) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)32): { { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* T6_; if (!(((*n).flags &((NU32)1<<((NU)((((tyEnum_TNodeFlag__69c8WThOUT3nlaj2cOZ9c2dw)0)))&31U)))!=0)) goto LA4_; T6_ = NIM_NIL; T6_ = newNodeI__ast_3949(((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)1), (*n).info); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; eqsink___ast_3460(&(*parent)._kind_6.sons.p->data[parentPos], T6_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } goto LA2_; LA4_: ; { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* xX60gensym39_; xX60gensym39_ = NIM_NIL; xX60gensym39_ = shallowCopy__ast_5838(n); if (NIM_UNLIKELY(*nimErr_)) goto LA8_; { NI iX60gensym39_; NI colontmp_; NI i; iX60gensym39_ = (NI)0; colontmp_ = (NI)0; colontmp_ = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto LA8_; i = ((NI)0); { while (1) { if (!(i < colontmp_)) goto LA11 ; iX60gensym39_ = i; opt__optimizer_360(c, (*n)._kind_6.sons.p->data[iX60gensym39_], xX60gensym39_, iX60gensym39_); if (NIM_UNLIKELY(*nimErr_)) goto LA8_; i += ((NI)1); } LA11: ; } } eqsink___ast_3460(&(*parent)._kind_6.sons.p->data[parentPos], xX60gensym39_); if (NIM_UNLIKELY(*nimErr_)) goto LA8_; xX60gensym39_ = 0; { LA8_:; } { oldNimErrFin8_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&xX60gensym39_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin8_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } LA2_: ; } break; case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)0) ... ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)23): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)98): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)79): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)81): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)80): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)84): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)82): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)83): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)51): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)52): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)159): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)101): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)102): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)121): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)116): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)118): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)90): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)125): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)158): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)132): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)123): case ((tyEnum_TNodeKind__ySM4MdHjvuRpNcphR1xnyQ)122): { eqcopy___ast_3457(&(*parent)._kind_6.sons.p->data[parentPos], n); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; default: { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* xX60gensym43_; xX60gensym43_ = NIM_NIL; xX60gensym43_ = shallowCopy__ast_5838(n); if (NIM_UNLIKELY(*nimErr_)) goto LA16_; { NI iX60gensym43_; NI colontmp__2; NI i_2; iX60gensym43_ = (NI)0; colontmp__2 = (NI)0; colontmp__2 = len__ast_3325(n); if (NIM_UNLIKELY(*nimErr_)) goto LA16_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp__2)) goto LA19 ; iX60gensym43_ = i_2; opt__optimizer_360(c, (*n)._kind_6.sons.p->data[iX60gensym43_], xX60gensym43_, iX60gensym43_); if (NIM_UNLIKELY(*nimErr_)) goto LA16_; i_2 += ((NI)1); } LA19: ; } } eqsink___ast_3460(&(*parent)._kind_6.sons.p->data[parentPos], xX60gensym43_); if (NIM_UNLIKELY(*nimErr_)) goto LA16_; xX60gensym43_ = 0; { LA16_:; } { oldNimErrFin16_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___ast_3454(&xX60gensym43_); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin16_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; } break; } }BeforeRet_: ; } N_LIB_PRIVATE N_NIMCALL(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q*, optimize__optimizer_400)(tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* n) { tyObject_TNode__1pEudI6ZemBfsBxMjg4u5Q* result; tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag b; tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ c; NIM_BOOL oldNimErrFin1_; NIM_BOOL* nimErr_; {nimErr_ = nimErrorFlag(); result = NIM_NIL; nimZeroMem((void*)(&b), sizeof(tyObject_BasicBlock__oHv68TcOXo9cLJD2lQQt59ag)); nimZeroMem((void*)(&c), sizeof(tyObject_Con__MgXZmgKGNnLxC1CBbEOFLQ)); analyse__optimizer_180((&c), (&b), n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { if (!c.somethingTodo) goto LA4_; result = shallowCopy__ast_5838(n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; { NI i; NI colontmp_; NI i_2; i = (NI)0; colontmp_ = (NI)0; colontmp_ = safeLen__ast_3318(n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; i_2 = ((NI)0); { while (1) { if (!(i_2 < colontmp_)) goto LA8 ; i = i_2; opt__optimizer_360(c, (*n)._kind_6.sons.p->data[i], result, i); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; i_2 += ((NI)1); } LA8: ; } } } goto LA2_; LA4_: ; { eqcopy___ast_3457(&result, n); if (NIM_UNLIKELY(*nimErr_)) goto LA1_; } LA2_: ; { LA1_:; } { oldNimErrFin1_ = *nimErr_; *nimErr_ = NIM_FALSE; eqdestroy___optimizer_37((&b)); if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; *nimErr_ = oldNimErrFin1_; } if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_; }BeforeRet_: ; return result; }