micropython

docs/optimisations.txt

142:4cb6ccaaf758
2008-09-07 Paul Boddie Removed the superfluous temporary storage optimisation since it could never work as implemented (and would be mostly equivalent to the source storage optimisation).
     1 Optimisation                    Prerequisites and Effect
     2 ------------                    ------------------------
     3 
     4 constant_storage                value instruction references a constant;
     5 (elimination)                   storage instruction references a constant;
     6                                 remove both instructions (currently a single
     7                                 merged instruction)
     8 
     9 source_storage                  source instruction is a simple input operation;
    10 (elimination)                   source instruction is the last instruction;
    11                                 remove the source instruction
    12 
    13 known_target                    value instruction references a constant;
    14 (guidance)                      target and context are provided (no instructions removed)
    15 
    16 self_access                     value instruction references "self" in a method;
    17 (guidance)                      specified attribute name always has the same position;
    18                                 appropriate instruction generated
    19 
    20 temp_storage                    value instruction is a simple input operation;
    21 (elimination)                   value instruction is the last instruction;
    22 (guidance)                      remove the value instruction, provide the value
    23                                 instruction in place of a temporary storage
    24                                 reference
    25 
    26 load_operations                 value instruction is a simple input operation;
    27 (merge)                         value instruction is the last instruction;
    28                                 current instruction uses simple input;
    29                                 remove the value instruction, make the value
    30                                 instruction the input to the current instruction
    31 
    32 no_operations                   input to the current instruction loads from the
    33 (elimination)                   destination of the current instruction;
    34                                 omit the current instruction
    35 
    36 unused_results                  value instruction is a simple input operation;
    37 (elimination)                   value instruction is the final instruction of a
    38                                 discarded expression;
    39                                 remove the value instruction