pike.git / src / peep.in

version» Context lines:

pike.git/src/peep.in:197:   GLOBAL_LVALUE INC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) INC   GLOBAL_LVALUE DEC_AND_POP GLOBAL($1a): GLOBAL_LVALUE($1a) DEC      CONST1 BRANCH_WHEN_ZERO:   CONST0 BRANCH_WHEN_ZERO: BRANCH($2a)   CONST1 BRANCH_WHEN_NON_ZERO: BRANCH($2a)   CONST0 BRANCH_WHEN_NON_ZERO:   NUMBER [$1a] BRANCH_WHEN_ZERO:   NUMBER [$1a] BRANCH_WHEN_NON_ZERO: BRANCH($2a)    - // These optimizations are now handled in optimize_eq - // CONST0 BRANCH_WHEN_EQ: BRANCH_WHEN_ZERO($2a) - // CONST0 BRANCH_WHEN_NE: BRANCH_WHEN_NON_ZERO($2a) - // - // This one is not safe. - // CONST0 EQ: NOT -  - EQ BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_EQ ($2a) - NE BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_NE ($2a) - LT BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_LT ($2a) - GT BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_GT ($2a) - LE BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_LE ($2a) - GE BRANCH_WHEN_NON_ZERO: BRANCH_WHEN_GE ($2a) -  - EQ BRANCH_WHEN_ZERO: BRANCH_WHEN_NE ($2a) - NE BRANCH_WHEN_ZERO: BRANCH_WHEN_EQ ($2a) - // The following only work on total orders. We can't assume that. - // LT BRANCH_WHEN_ZERO: BRANCH_WHEN_GE ($2a) - // GT BRANCH_WHEN_ZERO: BRANCH_WHEN_LE ($2a) - // LE BRANCH_WHEN_ZERO: BRANCH_WHEN_GT ($2a) - // GE BRANCH_WHEN_ZERO: BRANCH_WHEN_LT ($2a) -  +    EQ LOR: EQ_OR ($2a)   EQ LAND: EQ_AND ($2a)      EQ NOT: NE   NE NOT: EQ      // The following only work on total orders. We can't assume that.   //   // LT NOT: GE   // GT NOT: LE
pike.git/src/peep.in:385:      LOCAL BRANCH_WHEN_NON_ZERO : BRANCH_IF_LOCAL($1a) POINTER($2a)   LOCAL BRANCH_WHEN_ZERO : BRANCH_IF_NOT_LOCAL($1a) POINTER($2a)      // quick_branch_when[_non]_zero _knows_ that the   // value on the stack is an integer.   GT BRANCH_WHEN_ZERO : GT QUICK_BRANCH_WHEN_ZERO($2a)   GE BRANCH_WHEN_ZERO : GE QUICK_BRANCH_WHEN_ZERO($2a)   LT BRANCH_WHEN_ZERO : LT QUICK_BRANCH_WHEN_ZERO($2a)   LE BRANCH_WHEN_ZERO : LE QUICK_BRANCH_WHEN_ZERO($2a) + NE BRANCH_WHEN_ZERO : NE QUICK_BRANCH_WHEN_ZERO($2a) + EQ BRANCH_WHEN_ZERO : EQ QUICK_BRANCH_WHEN_ZERO($2a) +    SIZEOF BRANCH_WHEN_ZERO : SIZEOF($1a) QUICK_BRANCH_WHEN_ZERO($2a)   SIZEOF_LOCAL BRANCH_WHEN_ZERO : SIZEOF_LOCAL($1a) QUICK_BRANCH_WHEN_ZERO($2a)      GT BRANCH_WHEN_NON_ZERO : GT QUICK_BRANCH_WHEN_NON_ZERO($2a)   GE BRANCH_WHEN_NON_ZERO : GE QUICK_BRANCH_WHEN_NON_ZERO($2a)   LT BRANCH_WHEN_NON_ZERO : LT QUICK_BRANCH_WHEN_NON_ZERO($2a)   LE BRANCH_WHEN_NON_ZERO : LE QUICK_BRANCH_WHEN_NON_ZERO($2a) -  + NE BRANCH_WHEN_NON_ZERO : NE QUICK_BRANCH_WHEN_NON_ZERO($2a) + EQ BRANCH_WHEN_NON_ZERO : EQ QUICK_BRANCH_WHEN_NON_ZERO($2a) +    SIZEOF BRANCH_WHEN_NON_ZERO : SIZEOF($1a) QUICK_BRANCH_WHEN_NON_ZERO($2a)   SIZEOF_LOCAL BRANCH_WHEN_NON_ZERO : SIZEOF_LOCAL($1a) QUICK_BRANCH_WHEN_NON_ZERO($2a)      // It is not really neccessary to set up a frame for these cases.   // Deluxe version: Also avoid the argument/local clearing, asm-level   // register pushing etc.   //   // These are functions returning a constant, and doing nothing else.   MARK_AT(0) POP_TO_MARK INIT_FRAME RETURN_0 : RETURN_0   MARK_AT(0) POP_TO_MARK INIT_FRAME UNDEFINED RETURN : UNDEFINED RETURN
pike.git/src/peep.in:561:   SimpleBranch( GLOBAL_LOCAL_INDEX($1a, $1b) , $2a )   SimpleBranch( LOCAL_LOCAL_INDEX($1a, $1b) , $2a )      SimpleBranch( GLOBAL($1a) ARROW ($2a), $3a )      LOCAL ASSIGN_LOCAL_AND_POP : LOCAL_2_LOCAL($2a,$1a)   GLOBAL ASSIGN_LOCAL_AND_POP : GLOBAL_2_LOCAL($1a,$2a)   LOCAL ASSIGN_GLOBAL_AND_POP : LOCAL_2_GLOBAL($2a,$1a)      ASSIGN_PRIVATE_GLOBAL_AND_POP PRIVATE_GLOBAL($1a) : ASSIGN_PRIVATE_GLOBAL($1a) + ASSIGN_PRIVATE_TYPED_GLOBAL_AND_POP PRIVATE_TYPED_GLOBAL($1a) : ASSIGN_PRIVATE_TYPED_GLOBAL($1a,$1b)   ASSIGN_GLOBAL_AND_POP GLOBAL($1a) : ASSIGN_GLOBAL($1a)   ASSIGN_LOCAL_AND_POP LOCAL($1a) : ASSIGN_LOCAL($1a)      LOCAL ARROW : LOCAL_ARROW($2a,$1a)   LOCAL_ARROW BRANCH_WHEN_ZERO: BRANCH_IF_NOT_LOCAL_ARROW($1a,$1b) POINTER($2a)      GLOBAL LOCAL_INDEX : GLOBAL_LOCAL_INDEX($1a,$2a)      SIZEOF CONST1 BRANCH_WHEN_LT : SIZEOF BRANCH_WHEN_ZERO ($3a)   SIZEOF_LOCAL CONST1 BRANCH_WHEN_LT : SIZEOF_LOCAL($1a) BRANCH_WHEN_ZERO ($3a)
pike.git/src/peep.in:582:   SIZEOF_LOCAL CONST0 BRANCH_WHEN_LE : SIZEOF_LOCAL($1a) BRANCH_WHEN_ZERO ($3a)      CLEAR_LOCAL DEC_LOCAL_AND_POP($1a) : CONST_1 ASSIGN_LOCAL_AND_POP($1a)   CLEAR_LOCAL INC_LOCAL_AND_POP($1a) : CONST1 ASSIGN_LOCAL_AND_POP($1a)      NUMBER POP_VALUE :   STRING POP_VALUE :   //FLOAT POP_VALUE :   CONSTANT POP_VALUE :   LOCAL POP_VALUE : - IDENTIFIER POP_VALUE : + PRIVATE_GLOBAL POP_VALUE : + PRIVATE_TYPED_GLOBAL POP_VALUE :   TRAMPOLINE POP_VALUE :      RECUR RETURN [check_tailrecursion()] : TAIL_RECUR ($1a)      // This doesn't really work - // MARK TAIL_RECUR : BRANCH ($1a) + // MARK TAIL_RECUR : BRANCH ($2a) + // These optimizations are now handled in optimize_eq + // CONST0 BRANCH_WHEN_EQ: BRANCH_WHEN_ZERO($2a) + // CONST0 BRANCH_WHEN_NE: BRANCH_WHEN_NON_ZERO($2a) + // + // This one is not safe. + // CONST0 EQ: NOT    -  + BRANCH_WHEN_EQ: EQ QUICK_BRANCH_WHEN_NON_ZERO($1a) + BRANCH_WHEN_NE: EQ QUICK_BRANCH_WHEN_ZERO($1a) + BRANCH_WHEN_LT: LT QUICK_BRANCH_WHEN_NON_ZERO($1a) + BRANCH_WHEN_GT: GT QUICK_BRANCH_WHEN_NON_ZERO($1a) + BRANCH_WHEN_LE: LE QUICK_BRANCH_WHEN_NON_ZERO($1a) + BRANCH_WHEN_GE: GE QUICK_BRANCH_WHEN_NON_ZERO($1a) +    ASSIGN_LOCAL BRANCH_WHEN_ZERO 2_LOCALS(,$1a) BRANCH_WHEN_EQ : ASSIGN_LOCAL($1a) BRANCH_AND_POP_WHEN_ZERO($2a) LOCAL($3a) BRANCH_WHEN_EQ($4a)   ASSIGN_LOCAL BRANCH_WHEN_ZERO 2_LOCALS(,$1a) BRANCH_WHEN_NE : ASSIGN_LOCAL($1a) BRANCH_AND_POP_WHEN_ZERO($2a) LOCAL($3a) BRANCH_WHEN_NE($4a)      /* This will facilitate other optimizations I hope */   CLEAR_LOCAL MARK LOCAL [ $1a != $3a ] : MARK LOCAL($3a) CLEAR_LOCAL($1a)      /* The result of this optimization could be reordered... */   CLEAR_LOCAL MARK LOCAL($1a) : MARK CLEAR_LOCAL($1a) CONST0       -  +    #define LOW_MKCALLOPTS(A) \   A POP_VALUE: A##_AND_POP($1a); \   A [ check_tailrecursion() ] RETURN : A##_AND_RETURN($1a) ; \   A##_AND_RETURN ? DeadCodeEndCond($2o) : A##_AND_RETURN($1a) ;      #define MKCALLOPTS(A) \   MARK A: MARK_##A($2a) ; \   LOW_MKCALLOPTS(A); \   LOW_MKCALLOPTS(MARK_##A);