paul@141 | 1 | Optimisation Prerequisites and Effect
|
paul@141 | 2 | ------------ ------------------------
|
paul@141 | 3 |
|
paul@141 | 4 | constant_storage value instruction references a constant;
|
paul@141 | 5 | storage instruction references a constant;
|
paul@141 | 6 | remove both instructions (currently a single merged instruction)
|
paul@141 | 7 |
|
paul@141 | 8 | source_storage source instruction is a simple input operation;
|
paul@141 | 9 | source instruction is the last instruction;
|
paul@141 | 10 | remove the source instruction
|
paul@141 | 11 |
|
paul@141 | 12 | known_target value instruction references a constant;
|
paul@141 | 13 | target and context are provided (no instructions removed)
|
paul@141 | 14 |
|
paul@141 | 15 | self_access value instruction references "self" in a method;
|
paul@141 | 16 | specified attribute name always has the same position;
|
paul@141 | 17 | appropriate instruction generated
|
paul@141 | 18 |
|
paul@141 | 19 | temp_storage value instruction is a simple input operation;
|
paul@141 | 20 | value instruction is the last instruction;
|
paul@141 | 21 | remove the value instruction, provide the value
|
paul@141 | 22 | instruction in place of a temporary storage
|
paul@141 | 23 | reference
|
paul@141 | 24 |
|
paul@141 | 25 | load_operations value instruction is a simple input operation;
|
paul@141 | 26 | value instruction is the last instruction;
|
paul@141 | 27 | current instruction uses simple input;
|
paul@141 | 28 | remove the value instruction, make the value
|
paul@141 | 29 | instruction the input to the current instruction
|
paul@141 | 30 |
|
paul@141 | 31 | no_operations input to the current instruction loads from the
|
paul@141 | 32 | destination of the current instruction;
|
paul@141 | 33 | omit the current instruction
|
paul@141 | 34 |
|
paul@141 | 35 | unused_results value instruction is a simple input operation;
|
paul@141 | 36 | value instruction is the final instruction of a
|
paul@141 | 37 | discarded expression;
|
paul@141 | 38 | remove the value instruction
|
paul@141 | 39 |
|
paul@141 | 40 | superfluous_temp_operations source instruction writes to temporary storage;
|
paul@141 | 41 | current instruction reads from the same storage;
|
paul@141 | 42 | source instruction is the last instruction;
|
paul@141 | 43 | remove the source instruction, make the current
|
paul@141 | 44 | instruction use the input of the source
|
paul@141 | 45 | instruction
|