micropython

docs/optimisations.txt

219:b58aae0af656
2009-05-22 Paul Boddie Removed the codedetails attribute from DataObject instances and from the structure descriptions. Added notes about argument checking for CheckFrame since the context needs to be verified where it is required. Made sure that the bool class is available since True and False are always available and their methods must also be accessible via the object table. Split various tests into separate programs with improved labelling.
     1 Optimisation                    Prerequisites and Effect
     2 ------------                    ------------------------
     3 
     4 constant_storage                value instruction references a constant;
     5 (guidance)                      storage instruction references a constant;
     6                               | indicate whether both instructions satisfy the
     7                               | preconditions and should be removed (although
     8                               | this currently involves just a single merged
     9                               | instruction)
    10 
    11 constant_accessor               value instruction references a constant;
    12 (guidance)                    | target name provided (for use in producing an
    13                               | address access instruction)
    14 
    15 known_target                    value instruction references a constant;
    16 (guidance)                    | target and context are provided (no instructions
    17                               | are removed)
    18 
    19 self_access                     value instruction references "self" in a method;
    20 (guidance)                      specified attribute name always has the same
    21                                 position;
    22                               | indicate whether an appropriate instruction can
    23                               | be generated for the access
    24 
    25 temp_storage                    value instruction is a simple input operation;
    26 (elimination)                   value instruction is the last instruction;
    27 (guidance)                    | remove the value instruction, provide the value
    28                               | instruction in place of a temporary storage
    29                               | reference
    30 
    31 load_operations                 value instruction is a simple input operation;
    32 (merge)                         value instruction is the last instruction;
    33                                 current instruction uses simple input;
    34                               | remove the value instruction, make the value
    35                               | instruction the input to the current instruction
    36 
    37 no_operations                   input to the current instruction loads from the
    38 (guidance)                      destination of the current instruction;
    39                               | indicate that the current instruction should be
    40                               | omitted
    41 
    42 unused_results                  value instruction is a simple input operation;
    43 (elimination)                   value instruction is the final instruction of a
    44                                 discarded expression;
    45                               | remove the value instruction