pike.git / src / treeopt.in

version» Context lines:

pike.git/src/treeopt.in:602:    $0;      // Simplify code below by converting F_INITIALIZE to F_ASSIGN   // in this case.   F_COMMA_EXPR(F_INITIALIZE(0, 1), 2):    F_COMMA_EXPR(F_ASSIGN($0, $1), $2);      // x = expr; --x; ==> x = expr-1;   F_COMMA_EXPR(F_ASSIGN(1 = +[!depend_p($$, $$)], 0), F_DEC($1, -)):    { +  struct pike_type *t = $1->type;    $$ = mknode(F_ASSIGN, $1,    mkefuncallnode("`-", -  mknode(F_ARG_LIST, $0, mkintnode(1)))); +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1))));    }    ;      // x = expr; ++x; ==> x = expr+1;   F_COMMA_EXPR(F_ASSIGN(1 = +[!depend_p($$, $$)], 0), F_INC($1, -)):    { -  +  struct pike_type *t = $1->type;    $$ = mknode(F_ASSIGN, $1,    mkefuncallnode("`+", -  mknode(F_ARG_LIST, $0, mkintnode(1)))); +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1))));    }    ;      // x = expr; --x; ==> x = expr-1;   F_COMMA_EXPR(F_ASSIGN(1 = +[!depend_p($$, $$)], 0),    F_COMMA_EXPR(F_DEC($1, -), 2)):    { -  +  struct pike_type *t = $1->type;    $$ = mknode(F_COMMA_EXPR,    mknode(F_ASSIGN, $1,    mkefuncallnode("`-", -  mknode(F_ARG_LIST, $0, mkintnode(1)))), +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1)))),    $2);    }    ;      // x = expr; ++x; ==> x = expr+1;   F_COMMA_EXPR(F_ASSIGN(1 = +[!depend_p($$, $$)], 0),    F_COMMA_EXPR(F_INC($1, -), 2)):    { -  +  struct pike_type *t = $1->type;    $$ = mknode(F_COMMA_EXPR,    mknode(F_ASSIGN, $1,    mkefuncallnode("`+", -  mknode(F_ARG_LIST, $0, mkintnode(1)))), +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1)))),    $2);    }    ;      // Same but for F_LOCAL, since F_LOCAL nodes aren't shared.      // x = expr; --x; ==> x = expr-1;   F_COMMA_EXPR(F_ASSIGN(1 = F_LOCAL, 0),    F_DEC(F_LOCAL    [ $1->u.integer.a == $$->u.integer.a ]    [ $1->u.integer.b == $$->u.integer.b ], -)):    { -  +  struct pike_type *t = $1->type;    $$ = mknode(F_ASSIGN, $1,    mkefuncallnode("`-", -  mknode(F_ARG_LIST, $0, mkintnode(1)))); +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1))));    }    ;      // x = expr; ++x; ==> x = expr+1;   F_COMMA_EXPR(F_ASSIGN(1 = F_LOCAL, 0),    F_INC(F_LOCAL    [ $1->u.integer.a == $$->u.integer.a ]    [ $1->u.integer.b == $$->u.integer.b ], -)):    { -  +  struct pike_type *t = $1->type;    $$ = mknode(F_ASSIGN, $1,    mkefuncallnode("`+", -  mknode(F_ARG_LIST, $0, mkintnode(1)))); +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1))));    }    ;      // x = expr; --x; ==> x = expr-1;   F_COMMA_EXPR(F_ASSIGN(1 = F_LOCAL, 0),    F_COMMA_EXPR(F_DEC(F_LOCAL    [$1->u.integer.a == $$->u.integer.a]    [$1->u.integer.b == $$->u.integer.b], -), 2)):    { -  +  struct pike_type *t = $1->type;    $$ = mknode(F_COMMA_EXPR,    mknode(F_ASSIGN, $1,    mkefuncallnode("`-", -  mknode(F_ARG_LIST, $0, mkintnode(1)))), +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1)))),    $2);    }    ;      // x = expr; ++x; ==> x = expr+1;   F_COMMA_EXPR(F_ASSIGN(1 = F_LOCAL, 0),    F_COMMA_EXPR(F_INC(F_LOCAL    [$1->u.integer.a == $$->u.integer.a]    [$1->u.integer.b == $$->u.integer.b], -), 2)):    { -  +  struct pike_type *t = $1->type;    $$ = mknode(F_COMMA_EXPR,    mknode(F_ASSIGN, $1,    mkefuncallnode("`+", -  mknode(F_ARG_LIST, $0, mkintnode(1)))), +  mknode(F_ARG_LIST, +  mksoftcastnode(t, $0), +  mkintnode(1)))),    $2);    }    ;      // [ vars... ] = ({ vals... }) ==> multi_assign(vars, vals)   F_ASSIGN(F_ARRAY_LVALUE(1, -),    F_APPLY(F_CONSTANT    [TYPEOF($$->u.sval) == T_FUNCTION]    [SUBTYPEOF($$->u.sval) == FUNCTION_BUILTIN]    [$$->u.sval.u.efun->function == debug_f_aggregate],