1641 lines
55 KiB
C
1641 lines
55 KiB
C
/* Generated by Nim Compiler v1.9.0 */
|
|
#define NIM_INTBITS 64
|
|
|
|
#include "nimbase.h"
|
|
#include <string.h>
|
|
#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_4003;
|
|
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_4003);
|
|
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;
|
|
}
|